[Ipopt] Installed libipopt.so has undefined symbols

Andreas Waechter andreasw at watson.ibm.com
Tue May 26 10:49:20 EDT 2009


Hi Thomas,

Then you configure Ipopt, it finds out what other libraries it has to be 
linked with, and it puts this information into the example Makefiles, see 
in the LIBS variable, see, e.g.,

YOUR_IPOPT_INST_DIR/Ipopt/examples/hs071_cpp/Makefile

(where "YOUR_IPOPT_INST_DIR" is the directory where you installed Ipopt, 
usually where you run configure).

Alternatively, it also creates a file

YOUR_IPOPT_INST_DIR/share/doc/coin/Ipopt/ipopt_addlibs_cpp.txt

which contains those libraries as text as well.

You can use that for example as in

g++ test.cc -lipopt `cat YOUR_IPOPT_INST_DIR/share/doc/coin/Ipopt/ipopt_addlibs_cpp.txt`

I hope this helps,

Andreas

On Tue, 26 May 2009, Thomas Moulard wrote:

> Hello,
> When using Ipopt 3.6.1, I have to manually add the Lapack, pthread and
> gfortran library
> which is a real bother for me.
>
> Example:
> $ echo 'int main () {}' > test.cc
> $ g++ test.cc -lipopt
> /home/thomas/.local/lib/libipopt.so: undefined reference to `dsyev_'
> /home/thomas/.local/lib/libipopt.so: undefined reference to `pthread_create'
> /home/thomas/.local/lib/libipopt.so: undefined reference to `dpotrf_'
> /home/thomas/.local/lib/libipopt.so: undefined reference to `dpotrs_'
> /home/thomas/.local/lib/libipopt.so: undefined reference to `pthread_join'
> collect2: ld returned 1 exit status
>
> However, if I regenerate a library with the right dependencies:
> $ g++ -shared -pthread -llapack -lgfortran -lipopt -o libipopt2.so
>
> The following command is now working:
> $ g++ test.cc -lipopt2
>
> (some -L -rpath... flags have been removed to keep the commands clear)
>
> Would it be possible to fix that in the next release?
> It would really make the use/detection of Ipopt easier for the end-users.
>
> Thanks,
> -- 
> Thomas Moulard
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



More information about the Ipopt mailing list