[Ipopt-tickets] [Ipopt] #255: java: symbol lookup error: libipopt.so: undefined symbol: dmumps_c

Ipopt coin-trac at coin-or.org
Tue Jan 20 21:55:52 EST 2015


#255: java: symbol lookup error: libipopt.so: undefined symbol: dmumps_c
--------------------------+------------------------
Reporter:  dblfl          |      Owner:  ipopt-team
    Type:  clarification  |     Status:  new
Priority:  normal         |  Component:  Ipopt
 Version:  3.11           |   Severity:  normal
Keywords:                 |
--------------------------+------------------------
 I call libipopt.so by JNI use java,but when running procedure throws a
 error "java: symbol lookup error: libipopt.so: undefined symbol:
 dmumps_c".
 by ldd -r command show

 ldd -r  libipopt.so

 [root at localhost lib]# ldd -r libipopt.so
         linux-vdso.so.1 =>  (0x00007fff71990000)
         libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f57cee1f000)
         libm.so.6 => /lib64/libm.so.6 (0x00007f57ceb9a000)
         libc.so.6 => /lib64/libc.so.6 (0x00007f57ce806000)
         /lib64/ld-linux-x86-64.so.2 (0x0000003ac5e00000)
         libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f57ce5f0000)
 undefined symbol: dgemm_        (./libipopt.so)
 undefined symbol: daxpy_        (./libipopt.so)
 undefined symbol: dlsym (./libipopt.so)
 undefined symbol: dnrm2_        (./libipopt.so)
 undefined symbol: dlerror       (./libipopt.so)
 undefined symbol: dsyev_        (./libipopt.so)
 undefined symbol: dcopy_        (./libipopt.so)
 undefined symbol: dscal_        (./libipopt.so)
 undefined symbol: ddot_ (./libipopt.so)
 undefined symbol: dgetrf_       (./libipopt.so)
 undefined symbol: dsyrk_        (./libipopt.so)
 undefined symbol: dasum_        (./libipopt.so)
 undefined symbol: dtrsm_        (./libipopt.so)
 undefined symbol: idamax_       (./libipopt.so)
 undefined symbol: dpotrf_       (./libipopt.so)
 undefined symbol: dmumps_c      (./libipopt.so)
 undefined symbol: dgemv_        (./libipopt.so)
 undefined symbol: dpotrs_       (./libipopt.so)
 undefined symbol: dlopen        (./libipopt.so)
 undefined symbol: dsymv_        (./libipopt.so)
 undefined symbol: dgetrs_       (./libipopt.so)
 undefined symbol: dlclose       (./libipopt.so)


 there are many undefined symbols in libipopt.so. libipopt.so compiled by
 myself.

 Compiling and Installing IPOPT  on linux redhat enterprise 6.5  64bit
 GCC

 == '''steps''' ==

 1、download tarball from http://www.coin-
 or.org/download/source/Ipopt/Ipopt-3.11.9.tgz
 2、unzip
    tar -zxvf Ipopt-3.11.9.tgz
 3、cd Ipopt-3.11.9
 4、mkdir build
 5、cd ThirdParty    ,enter ASL\Blas\Lapack\Metis\Mumps  run  get.ASL/
 get.Blas/get.Metis/get.Mumps
 6、cd build  run ../configure
    the last I see output "
 config.status: executing depfiles commands
 configure: Creating VPATH links for data files
 configure: In case of trouble, first consult the troubleshooting page at
 https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting
 configure: Configuration of Ipopt successful
 configure: In case of trouble, first consult the troubleshooting page at
 https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting
 configure: Main configuration of Ipopt successful
 [root at localhost build]# Main configuration of Ipopt successful

 7、 run make
    everything seem like right,no error exist.last output info"
 make[3]: Leaving directory
 `/usr/local/Ipopt-3.11.9/build/Ipopt/src/Apps/AmplSolver'
 make[3]: Entering directory `/usr/local/Ipopt-3.11.9/build/Ipopt/src/Apps'
 make[3]: Nothing to be done for `all-am'.
 make[3]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt/src/Apps'
 make[2]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt/src/Apps'
 make[2]: Entering directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[2]: Nothing to be done for `all-am'.
 make[2]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[1]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[1]: Entering directory `/usr/local/Ipopt-3.11.9/build'
 make[1]: Nothing to be done for `all-am'.
 make[1]: Leaving directory `/usr/local/Ipopt-3.11.9/build'


 "
 8、make install

     no error exist . last output info
 "
 test -z "/usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt" || mkdir -p
 -- "/usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt"
 for file in README AUTHORS LICENSE; do \
           if test -f "$file"; then dir=; else dir="../../Ipopt/"; fi; \
           if test -f "$dir$file"; then /usr/bin/install -c -m 644
 "$dir$file" "/usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt/$file";
 fi; \
         done
 test -z "/usr/local/Ipopt-3.11.9/build/lib/pkgconfig" || mkdir -p --
 "/usr/local/Ipopt-3.11.9/build/lib/pkgconfig"
  /usr/bin/install -c -m 644 'ipopt.pc'
 '/usr/local/Ipopt-3.11.9/build/lib/pkgconfig/ipopt.pc'
 make  install-data-hook
 make[4]: Entering directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 PKG_CONFIG_PATH=/usr/local/Ipopt-3.11.9/build/lib64/pkgconfig:/usr/local/Ipopt-3.11.9/build/lib/pkgconfig:/usr/local/Ipopt-3.11.9/build/share/pkgconfig:
 \
         pkg-config --libs ipopt >
 /usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt/ipopt_addlibs_cpp.txt
 addlibs=`cat
 /usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt/ipopt_addlibs_cpp.txt`
 ; \
         echo "$addlibs -lstdc++ -lm" >
 /usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt/ipopt_addlibs_c.txt ; \
         for i in  -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7
 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64
 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..
 -lgfortranbegin -lgfortran -lm coin_dummy ; do \
                 addlibs=`echo -n " $addlibs " | sed -e "s! $i ! !g"` ; \
         done ; \
         echo "$addlibs -lstdc++ -lm" >
 /usr/local/Ipopt-3.11.9/build/share/coin/doc/Ipopt/ipopt_addlibs_f.txt
 make[4]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[3]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[2]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[1]: Leaving directory `/usr/local/Ipopt-3.11.9/build/Ipopt'
 make[1]: Entering directory `/usr/local/Ipopt-3.11.9/build'
 make[2]: Entering directory `/usr/local/Ipopt-3.11.9/build'
 Run make install-doxydoc to generate and install Doxygen documentation.
 make[2]: Nothing to be done for `install-data-am'.
 make[2]: Leaving directory `/usr/local/Ipopt-3.11.9/build'
 make[1]: Leaving directory `/usr/local/Ipopt-3.11.9/build'


 "
 enter  in build/lib/ have some *.so|*.la files ,such as "
 libcoinasl.la         libcoinblas.so         libcoinlapack.so.1
 libcoinmetis.so.1.2.10  libipoptamplinterface.la        libipopt.so
 libcoinasl.so         libcoinblas.so.1       libcoinlapack.so.1.4.11
 libcoinmumps.la         libipoptamplinterface.so        libipopt.so.1
 libcoinasl.so.1       libcoinblas.so.1.3.11  libcoinmetis.la
 libcoinmumps.so         libipoptamplinterface.so.1      libipopt.so.1.9.9
 libcoinasl.so.1.2.16  libcoinlapack.la       libcoinmetis.so
 libcoinmumps.so.1       libipoptamplinterface.so.1.9.9  pkgconfig
 libcoinblas.la        libcoinlapack.so       libcoinmetis.so.1
 libcoinmumps.so.1.4.13  libipopt.la

 "
 above is my all operation procedure. but the libipopt.so seem like not
 right link Mumps. so I want know how I setup my environment ?or what any
 options with when I run configure?

 I see also
 IPOPT compilation hints:
 https://projects.coin-or.org/Ipopt/wiki/CompilationHints

 in above document, the section "Compiling Ipopt" and "Compiling/Linking an
 Example" i don't understand "CMakelists.txt" what it is.

 i read https://projects.coin-or.org/BuildTools/wiki/current-issues
 contents.
 in it "
 On MacOS X 10.9, the default C++ standard library used by the Xcode
 compilers has changed to libc++ (LLVM/clang), rather than libstdc++ (GNU).
 This can cause strange link errors when linking C++ code into C or Fortran
 libraries or executables. The errors may be of the form "Undefined symbols
 for architecture x86_64" for many symbols that begin with std::__1::,
 which should be coming from libc++. BuildTools? currently assumes the
 default C++ library is libstdc++ in most cases, ​this patch will fix the
 issue but may take some time to be ready for release. There are two
 workarounds: either let BuildTools? know that the C++ standard library is
 libc++ by configuring with CXXLIBS=-lc++, or tell the clang++ compiler to
 use libstdc++ as its standard library by configuring with
 ADD_CXXFLAGS="-stdlib=libstdc++".

 "  same as mine ,but I try ../configure ADD_CXXFLAGS="-stdlib=libstdc++"
 ,when make throws error.


 hellp me please! thank you !

--
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/255>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.



More information about the Ipopt-tickets mailing list