[Ipopt] Installed libipopt.so has undefined symbols

Andreas Waechter andreasw at watson.ibm.com
Tue May 26 11:51:59 EDT 2009

Hi Thomas,

I'm not sure what you mean by "standard way" or by "providing two 
libraries".  The libraries that are missing are system libraries 
pre-installed on your machine.  All code that is compiled by the Ipopt 
Makefiles is included in the libipopt.so (except the code that is not 
needed if you use Ipopt as a library and not an AMPL executable).  There 
is no way to include the missing libraries also in libipopt.so, and it 
wouldn't be a good idea anyway.

It is not uncommon for software packages (open source or not) to depend on 
system libraries. In your case, Ipopt needs libpthreads.so and 
liblapack.so.  Since this can be different for different users and 
operating systems, this is detected by configure and put into the example 
Makefiles and the text file for convenience, so that a user doesn't have 
to take care of this by hand.

(Instead of using those *.txt files, there is another way to do this on 
Linux, by calling a program that outputs a text string with the missing 
library flags.  But we haven't switched to that on COIN [yet?].)

I hope this clarifies.



On Tue, 26 May 2009, Thomas Moulard wrote:

> On Tue, May 26, 2009 at 11:49 PM, Andreas Waechter
> <andreasw at watson.ibm.com> wrote:
>> 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 see. Is there a specific reason to not handle dependencies in the
> standard way?
> If there is one, why not provide two libraries?
> -- 
> 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