[Ipopt] Question about static libraies.

Stefan Vigerske stefan at math.hu-berlin.de
Sat Apr 27 10:46:59 EDT 2013


Hi,

you could try reordering the linker flags so that the ipopt libs comes 
after your  gereme_ipopt_main.o.
In static builds with g++, the order of the linker flags matters.

Stefan

On 04/26/2013 07:10 PM, Ahn, Tae-Hyuk wrote:
> Hello Stefan,
>
> First I really appreciate for all your previous and future help for IPOPT.
>
> I have one question about the IPOPT library. I will run IPOPT program in supercomputer,
> so IPOPT static libraries are required. The process of building libraries was done
> without error. But I've got error when II built my IPOPT program. Below was what I did:
>
>      $ ../configure --enable-static --disable-shared
>      $ make
>      $ make test
>      $ make install
>      I succeeded to build the IPOPT static libraries. But when I link them to my
>      main program, I've got the error message:
>      $ make (my IPOPT problem)
>      ....
>      g++ -fopenmp -static -L./ipopt/lib -lipopt -lipoptamplinterface -lcoinblas -lcoinlapack -lcoinasl -lcoinmumps -lcoinmetis -lpthread -lm -ldl utils.o parse_config.o gereme_config.o gereme_core.o gereme_ipopt_main.o gereme_ipopt_nlp.o -o gereme-solve-model
>      gereme_ipopt_main.o: In function `main':
>      gereme_ipopt_main.cpp:(.text+0x1202): undefined reference to `Ipopt::IpoptApplication::IpoptApplication(bool, bool)'
>      gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xc8): undefined reference to `Ipopt::Vector::AddTwoVectorsImpl(double, Ipopt::Vector const&, double, Ipopt::Vector const&, double)'
>      gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd0): undefined reference to `Ipopt::Vector::FracToBoundImpl(Ipopt::Vector const&, double) const'
>      gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd8): undefined reference to `Ipopt::Vector::AddVectorQuotientImpl(double, Ipopt::Vector const&, Ipopt::Vector const&, double)'
>      gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xe0): undefined reference to `Ipopt::Vector::HasValidNumbersImpl() const'
>      /usr/bin/ld: link errors found, deleting executable `gereme-solve-model'
>      collect2: ld returned 1 exit status
>
> Do you have any idea for this.
>
> Thank you very much.
>
> Sincerely,
>
> Ted
>



More information about the Ipopt mailing list