[Ipopt] ipoptr installation-undefined reference to gxx_personality

Stefan Vigerske stefan at math.hu-berlin.de
Fri Sep 27 16:32:26 EDT 2019


Hi,

On 9/27/19 8:16 PM, Serdar Altok wrote:
> I made the library changes. I still get similar errors, so I guess it is a
> compiler compatibility issue. The reason I did everything with Rtools
> compilers was to make sure I do not run into compatibility issues following
> Don Boyd's note. I am not knowledgable about compilers. How do I check
> whether the compilers R is using are the same as the ones I compiled?

which gcc, which g++, gcc --version, g++ --version, etc.

Stefan

> 
> For completeness, I copy the latest error message below.
> 
> g++ -m64 -shared -s -static-libstdc++ -static-libgcc -o ipoptr.dll tmp.def
> ipoptr.o IpoptRNLP.o IpoptRJournal.o -LC:/CoinIpopt/build/x64/lib -lipopt
> -lcoinmumps -lcoinlapack -lcoinblas -lcoinmetis
> -LC:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3 -lgfortran
> -LC:/Rtools/mingw_64/x86_64-w64-mingw32/lib -lmingw32 -lmoldname -lmingwex
> -lmsvcrt -lm -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv
> -LC:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3 -lgfortran -lquadmath
> -lstdc++ -LC:/PROGRA~1/R/R-32~1.5/bin/x64 -lR
> C:/CoinIpopt/build/x64/lib/libipopt.a(IpIpoptApplication.o):IpIpoptApplication.cpp:(.rdata$_ZTIN5Ipopt16ReferencedObjectE[_ZTIN5Ipopt16ReferencedObjectE]+0x0):
> multiple definition of `typeinfo for Ipopt::ReferencedObject'
> IpoptRNLP.o:IpoptRNLP.cpp:(.data$_ZTIN5Ipopt16ReferencedObjectE[_ZTIN5Ipopt16ReferencedObjectE]+0x0):
> first defined here
> C:/CoinIpopt/build/x64/lib/libipopt.a(IpJournalist.o):IpJournalist.cpp:(.rdata$_ZTIN5Ipopt7JournalE[_ZTIN5Ipopt7JournalE]+0x0):
> multiple definition of `typeinfo for Ipopt::Journal'
> IpoptRJournal.o:IpoptRJournal.cpp:(.data$_ZTIN5Ipopt7JournalE[_ZTIN5Ipopt7JournalE]+0x0):
> first defined here
> ipoptr.o:ipoptr.cpp:(.text+0xbb): undefined reference to
> `__gxx_personality_sj0'
> 
> On Fri, Sep 27, 2019 at 1:49 AM Stefan Vigerske <stefan at math.hu-berlin.de>
> wrote:
> 
>> Hi,
>>
>> you might want to check whether you indeed compiled Ipopt with the same
>> C/C++/Fortran compilers that R is using.
>>
>> Further, this line shouldn't be in the linker flags that you posted:
>>    -LC:\CoinIpopt\build\x64\Ipopt\src\Common\.libs -lcommon
>> libcommon.a is part of libipopt.
>>
>> Also libcoinmumps, lapack, blas, metis should be picked up from the same
>> directory where the Ipopt library was installed, probably
>> C:/CoinIpopt/build/x64/lib, not C:/CoinIpopt/build/x64/ThirdParty/*/.libs
>>
>> Stefan
>>
>> On 9/26/19 11:47 PM, Serdar Altok wrote:
>>> Hi,
>>>
>>> I am not sure if this list is an appropriate place to ask for help.
>>> Apologies in advance if it is not.
>>>
>>> I am trying to install ipoptr in R-studio with R-3.2.5 on 64bit Windows
>> 10.
>>> I am following
>>>
>>> https://list.coin-or.org/pipermail/ipopt/2017-June/004471.html
>>>
>>> I have Rtools33(compatible with R-3.2.5). It comes with gcc-4.9.3 as far
>> as
>>> I understand. I do not have any other compilers installed.
>>>
>>> As third-party libraries I have downloaded Lapack, Blas, Mumps, Metis,
>>>
>>> I run configure, make, make install with no error messages as far as I
>> see.
>>> My makevars.win does not seem to be correct but depending on the error
>>> messages I get, I make changes to include header files and link to
>>> libraries. I use libraries under the mingw64 folder. I assume they are
>>> compiled with gcc-4.9.3.
>>>
>>> I get
>>>
>>> g++ -m64 -shared -s -static-libgcc -o ipoptr.dll tmp.def ipoptr.o
>>> IpoptRNLP.o IpoptRJournal.o -LC:/CoinIpopt/build/x64/lib -lipopt
>>> -LC:/CoinIpopt/build/x64/ThirdParty/Mumps/.libs -lcoinmumps
>>> -LC:/CoinIpopt/build/x64/ThirdParty/Lapack/.libs -lcoinlapack
>>> -LC:/CoinIpopt/build/x64/ThirdParty/Blas/.libs -lcoinblas
>>> -LC:/CoinIpopt/build/x64/ThirdParty/Metis/.libs -lcoinmetis
>>> -LC:\CoinIpopt\build\x64\Ipopt\src\Common\.libs -lcommon
>>> -LC:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3 -lgfortran
>>> -LC:/Rtools/mingw_64/x86_64-w64-mingw32/lib -lmingw32 -lmoldname
>> -lmingwex
>>> -lmsvcrt -lm -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv
>>> -LC:/Rtools/mingw_64/lib/gcc/x86_64-w64-mingw32/4.9.3 -lgfortran
>> -lquadmath
>>> -lstdc++ -LC:/PROGRA~1/R/R-32~1.5/bin/x64 -lR
>>>
>> C:/CoinIpopt/build/x64/lib/libipopt.a(IpIpoptApplication.o):IpIpoptApplication.cpp:(.rdata$_ZTIN5Ipopt16ReferencedObjectE[_ZTIN5Ipopt16ReferencedObjectE]+0x0):
>>> multiple definition of `typeinfo for Ipopt::ReferencedObject'
>>>
>> IpoptRNLP.o:IpoptRNLP.cpp:(.data$_ZTIN5Ipopt16ReferencedObjectE[_ZTIN5Ipopt16ReferencedObjectE]+0x0):
>>> first defined here
>>>
>> C:/CoinIpopt/build/x64/lib/libipopt.a(IpJournalist.o):IpJournalist.cpp:(.rdata$_ZTIN5Ipopt7JournalE[_ZTIN5Ipopt7JournalE]+0x0):
>>> multiple definition of `typeinfo for Ipopt::Journal'
>>>
>> IpoptRJournal.o:IpoptRJournal.cpp:(.data$_ZTIN5Ipopt7JournalE[_ZTIN5Ipopt7JournalE]+0x0):
>>> first defined here
>>> ipoptr.o:ipoptr.cpp:(.text+0xbb): undefined reference to
>>> `__gxx_personality_sj0'
>>> ipoptr.o:ipoptr.cpp:(.text+0x11e): undefined reference to
>>> `_Unwind_SjLj_Register'
>>> ipoptr.o:ipoptr.cpp:(.text+0xa39): undefined reference to
>>> `_Unwind_SjLj_Unregister'
>>> ipoptr.o:ipoptr.cpp:(.text+0xb07): undefined reference to
>>> `_Unwind_SjLj_Resume'
>>>
>>> As far as my google search goes gxx_personality errors are due to
>> compiler
>>> incompatibility between the library and the compiler and/or is related to
>>> libstdc++. However I cannot resolve the problem.
>>>
>>> Any help would be greatly appreciated.
>>>
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> https://list.coin-or.org/mailman/listinfo/ipopt
>>>
>>
>>
> 



More information about the Ipopt mailing list