<div dir="ltr"><div><div>Hello, trying to compile ipopt 3.11.6 in Ubuntu 13.10 x64 I got the following error:<br>g++ -O3 -pipe -DNDEBUG -pedantic-errors -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD -o .libs/ipopt ampl_ipopt.o  ./.libs/libipoptamplinterface.so ../../Interfaces/.libs/libipopt.so /home/lobianco/programs/linux/src/ipopt/ThirdParty/ASL/.libs/libcoinasl.so /home/lobianco/programs/linux/src/ipopt/ThirdParty/Mumps/.libs/libcoinmumps.so /home/lobianco/programs/linux/src/ipopt/ThirdParty/Metis/.libs/libcoinmetis.so -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lpthread -lgfortran -lquadmath -llapack -lblas -lm -ldl<br>

../../Interfaces/.libs/libipopt.so: undefined reference to `dlopen&#39;<br>../../Interfaces/.libs/libipopt.so: undefined reference to `dlclose&#39;<br>../../Interfaces/.libs/libipopt.so: undefined reference to `dlerror&#39;<br>

../../Interfaces/.libs/libipopt.so: undefined reference to `dlsym&#39;<br>collect2: error: ld returned 1 exit status<br>make[3]: *** [ipopt] Error 1<br><br></div>I coudn&#39;t find anything specific to ipopt, and I see that the linker flag -ldl, that is often &quot;accused&quot; to be the reason behind this error is instead already there.. any clue??<br>

<br></div>/Antonello<br><div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On 28 April 2013 03:36, Tae-Hyuk Ahn <span dir="ltr">&lt;<a href="mailto:ahn.no1@gmail.com" target="_blank">ahn.no1@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
Thanks! After I used the addlibs, I also got error.<br>
<br>
[thm@viper:gereme_cpp_ipopt_static_test]$ make<br>
<div class="im">g++ -fopenmp -static utils.o parse_config.o gereme_config.o<br>
gereme_core.o gereme_ipopt_main.o gereme_ipopt_nlp.o<br>
</div>-L/home/thm/Software/CoinIpopt/build/lib<br>
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2<br>
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64<br>
-L/lib/../lib64 -L/usr/lib/../lib64 -lipopt -ldl -lcoinmumps -lpthread<br>
-lcoinlapack -lcoinmetis -lcoinblas -lgfortranbegin -lgfortran -lm<br>
-lgcc_s -o gereme-solve-model<br>
/home/thm/Software/CoinIpopt/build/lib/libipopt.a(LibraryHandler.o):<br>
In function `LSL_loadLib&#39;:<br>
LibraryHandler.c:(.text+0x1f3): warning: Using &#39;dlopen&#39; in statically<br>
linked applications requires at runtime the shared libraries from the<br>
glibc version used for linking<br>
/usr/bin/ld: cannot find -lgcc_s<br>
<div class="im">collect2: ld returned 1 exit status<br>
</div>make: *** [gereme-solve-model] Error 1<br>
<br>
So, I deleted -lgcc_s, then generate static binary only with warning<br>
<br>
/home/thm/Software/CoinIpopt/build/lib/libipopt.a(LibraryHandler.o):<br>
In function `LSL_loadLib&#39;:<br>
LibraryHandler.c:(.text+0x1f3): warning: Using &#39;dlopen&#39; in statically<br>
linked applications requires at runtime the shared libraries from the<br>
glibc version used for linking<br>
<br>
What is -lgcc_s ? Can I skip this?<br>
<br>
Thanks!<br>
<br>
Ted<br>
<br>
On Sat, Apr 27, 2013 at 11:28 AM, Stefan Vigerske<br>
<div class=""><div class="h5">&lt;<a href="mailto:stefan@math.hu-berlin.de">stefan@math.hu-berlin.de</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; that&#39;s what Ipopt has the addlibs for:<br>
&gt; <a href="http://www.coin-or.org/Ipopt/documentation/node22.html" target="_blank">http://www.coin-or.org/Ipopt/documentation/node22.html</a><br>
&gt;<br>
&gt; share/coin/doc/Ipopt/ipopt_addlibs_cpp.txt tells you which linker flags are<br>
&gt; required to link against the Ipopt library, and in which order.<br>
&gt;<br>
&gt; The ipopt.pc file in lib/pkgconfig has the same purpose.<br>
&gt;<br>
&gt; Stefan<br>
&gt;<br>
&gt;<br>
&gt; On 04/27/2013 05:03 PM, Tae-Hyuk Ahn wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Stefan,<br>
&gt;&gt;<br>
&gt;&gt; Yep, I forgot to reorder the linker flags before. After I reorder, I<br>
&gt;&gt; am still getting errors.<br>
&gt;&gt;<br>
&gt;&gt; g++ -fopenmp -static utils.o parse_config.o gereme_config.o<br>
&gt;&gt; gereme_core.o gereme_ipopt_main.o gereme_ipopt_nlp.o libipopt.a<br>
&gt;&gt; libipoptamplinterface.a libcoinasl.a libcoinblas.a libcoinlapack.a<br>
&gt;&gt; libcoinmetis.a libcoinmumps.a libipopt.a libipoptamplinterface.a -o<br>
&gt;&gt; gereme-solve-model<br>
&gt;&gt;<br>
&gt;&gt; The order of static archives is also make error? The errors look like<br>
&gt;&gt; this:<br>
&gt;&gt;<br>
&gt;&gt; libipopt.a(LibraryHandler.o): In function `LSL_loadSym&#39;:<br>
&gt;&gt; LibraryHandler.c:(.text+0x4e): undefined reference to `dlsym&#39;<br>
&gt;&gt; LibraryHandler.c:(.text+0x56): undefined reference to `dlerror&#39;<br>
&gt;&gt; libipopt.a(LibraryHandler.o): In function `LSL_loadLib&#39;:<br>
&gt;&gt; LibraryHandler.c:(.text+0x1f3): undefined reference to `dlopen&#39;<br>
&gt;&gt; LibraryHandler.c:(.text+0x231): undefined reference to `dlerror&#39;<br>
&gt;&gt; libipopt.a(LibraryHandler.o): In function `LSL_unloadLib&#39;:<br>
&gt;&gt; LibraryHandler.c:(.text+0x1c1): undefined reference to `dlclose&#39;<br>
&gt;&gt; libcoinblas.a(xerbla.o): In function `xerbla_&#39;:<br>
&gt;&gt; xerbla.f:(.text+0x59): undefined reference to `_gfortran_st_write&#39;<br>
&gt;&gt; xerbla.f:(.text+0x64): undefined reference to `_gfortran_string_len_trim&#39;<br>
&gt;&gt; xerbla.f:(.text+0x76): undefined reference to<br>
&gt;&gt; `_gfortran_transfer_character&#39;<br>
&gt;&gt; xerbla.f:(.text+0x86): undefined reference to `_gfortran_transfer_integer&#39;<br>
&gt;&gt; xerbla.f:(.text+0x8e): undefined reference to `_gfortran_st_write_done&#39;<br>
&gt;&gt; xerbla.f:(.text+0x98): undefined reference to `_gfortran_stop_numeric&#39;<br>
&gt;&gt; libcoinlapack.a(dsytrd.o): In function `dsytrd_&#39;:<br>
&gt;&gt; dsytrd.f:(.text+0x29d): undefined reference to `dsyr2k_&#39;<br>
&gt;&gt; dsytrd.f:(.text+0x5ff): undefined reference to `dsyr2k_&#39;<br>
&gt;&gt; libcoinlapack.a(ilaenv.o): In function `ilaenv_&#39;:<br>
&gt;&gt; ilaenv.f:(.text+0xb8): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0xe9): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x108): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x127): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x142): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; libcoinlapack.a(ilaenv.o):ilaenv.f:(.text+0x15d): more undefined<br>
&gt;&gt; references to `_gfortran_compare_string&#39; follow<br>
&gt;&gt; libcoinlapack.a(ilaenv.o): In function `ilaenv_&#39;:<br>
&gt;&gt; ilaenv.f:(.text+0x273): undefined reference to `_gfortran_copy_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x33c): undefined reference to `_gfortran_copy_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x357): undefined reference to `_gfortran_copy_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x36d): undefined reference to `_gfortran_copy_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x398): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x3b7): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x3d6): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x3f5): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; ilaenv.f:(.text+0x410): undefined reference to `_gfortran_compare_string&#39;<br>
&gt;&gt; libcoinlapack.a(ilaenv.o):ilaenv.f:(.text+0x42b): more undefined<br>
&gt;&gt; references to `_gfortran_compare_string&#39; follow<br>
&gt;&gt; libcoinlapack.a(dgetf2.o): In function `dgetf2_&#39;:<br>
&gt;&gt; dgetf2.f:(.text+0x1d5): undefined reference to `dswap_&#39;<br>
&gt;&gt; dgetf2.f:(.text+0x305): undefined reference to `dger_&#39;<br>
&gt;&gt; libcoinlapack.a(dlamch.o): In function `dlamch_&#39;:<br>
&gt;&gt; dlamch.f:(.text+0xad): undefined reference to `_gfortran_pow_r8_i4&#39;<br>
&gt;&gt; dlamch.f:(.text+0xfc): undefined reference to `_gfortran_pow_r8_i4&#39;<br>
&gt;&gt; libcoinlapack.a(dlamch.o): In function `dlamc2_&#39;:<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Apr 27, 2013 at 10:46 AM, Stefan Vigerske<br>
&gt;&gt; &lt;<a href="mailto:stefan@math.hu-berlin.de">stefan@math.hu-berlin.de</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; you could try reordering the linker flags so that the ipopt libs comes<br>
&gt;&gt;&gt; after<br>
&gt;&gt;&gt; your  gereme_ipopt_main.o.<br>
&gt;&gt;&gt; In static builds with g++, the order of the linker flags matters.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Stefan<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 04/26/2013 07:10 PM, Ahn, Tae-Hyuk wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hello Stefan,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; First I really appreciate for all your previous and future help for<br>
&gt;&gt;&gt;&gt; IPOPT.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I have one question about the IPOPT library. I will run IPOPT program in<br>
&gt;&gt;&gt;&gt; supercomputer,<br>
&gt;&gt;&gt;&gt; so IPOPT static libraries are required. The process of building<br>
&gt;&gt;&gt;&gt; libraries<br>
&gt;&gt;&gt;&gt; was done<br>
&gt;&gt;&gt;&gt; without error. But I&#39;ve got error when II built my IPOPT program. Below<br>
&gt;&gt;&gt;&gt; was what I did:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;       $ ../configure --enable-static --disable-shared<br>
&gt;&gt;&gt;&gt;       $ make<br>
&gt;&gt;&gt;&gt;       $ make test<br>
&gt;&gt;&gt;&gt;       $ make install<br>
&gt;&gt;&gt;&gt;       I succeeded to build the IPOPT static libraries. But when I link<br>
&gt;&gt;&gt;&gt; them<br>
&gt;&gt;&gt;&gt; to my<br>
&gt;&gt;&gt;&gt;       main program, I&#39;ve got the error message:<br>
&gt;&gt;&gt;&gt;       $ make (my IPOPT problem)<br>
&gt;&gt;&gt;&gt;       ....<br>
&gt;&gt;&gt;&gt;       g++ -fopenmp -static -L./ipopt/lib -lipopt -lipoptamplinterface<br>
&gt;&gt;&gt;&gt; -lcoinblas -lcoinlapack -lcoinasl -lcoinmumps -lcoinmetis -lpthread -lm<br>
&gt;&gt;&gt;&gt; -ldl<br>
&gt;&gt;&gt;&gt; utils.o parse_config.o gereme_config.o gereme_core.o gereme_ipopt_main.o<br>
&gt;&gt;&gt;&gt; gereme_ipopt_nlp.o -o gereme-solve-model<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.o: In function `main&#39;:<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.cpp:(.text+0x1202): undefined reference to<br>
&gt;&gt;&gt;&gt; `Ipopt::IpoptApplication::IpoptApplication(bool, bool)&#39;<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for<br>
&gt;&gt;&gt;&gt; Ipopt::Vector]+0xc8): undefined reference to<br>
&gt;&gt;&gt;&gt; `Ipopt::Vector::AddTwoVectorsImpl(double, Ipopt::Vector const&amp;, double,<br>
&gt;&gt;&gt;&gt; Ipopt::Vector const&amp;, double)&#39;<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for<br>
&gt;&gt;&gt;&gt; Ipopt::Vector]+0xd0): undefined reference to<br>
&gt;&gt;&gt;&gt; `Ipopt::Vector::FracToBoundImpl(Ipopt::Vector const&amp;, double) const&#39;<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for<br>
&gt;&gt;&gt;&gt; Ipopt::Vector]+0xd8): undefined reference to<br>
&gt;&gt;&gt;&gt; `Ipopt::Vector::AddVectorQuotientImpl(double, Ipopt::Vector const&amp;,<br>
&gt;&gt;&gt;&gt; Ipopt::Vector const&amp;, double)&#39;<br>
&gt;&gt;&gt;&gt;       gereme_ipopt_main.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for<br>
&gt;&gt;&gt;&gt; Ipopt::Vector]+0xe0): undefined reference to<br>
&gt;&gt;&gt;&gt; `Ipopt::Vector::HasValidNumbersImpl() const&#39;<br>
&gt;&gt;&gt;&gt;       /usr/bin/ld: link errors found, deleting executable<br>
&gt;&gt;&gt;&gt; `gereme-solve-model&#39;<br>
&gt;&gt;&gt;&gt;       collect2: ld returned 1 exit status<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Do you have any idea for this.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thank you very much.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Sincerely,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Ted<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">Antonello Lobianco<br>AgroParisTech, Laboratoire d&#39;Economie Forestière<br>14 Rue Girardet - 54000 Nancy, France<br>Tel: +33.383396865<br>Email: <a href="mailto:antonello.lobianco@nancy.inra.fr" target="_blank">antonello.lobianco@nancy.inra.fr</a><br>

<a href="http://antonello.lobianco.org/" target="_blank">http://antonello.lobianco.org</a></div>
</div></div></div></div></div>