[Ipopt] Problem Compiling under MSys/MinGW

Stefan Vigerske stefan at math.hu-berlin.de
Wed May 7 06:26:14 EDT 2008


Hi,

looks for me like your gcc is using the boost library as a stl 
implementation. The boost might implement the constructor of std::list 
differently then the normally used implementation.

The troublemaker seem to be the line
     std::list<TripletEntry> entry_list(nonzeros);
at IpTripletToCSRConverter.cpp:63, where nonzeros is an int.
I presume that normally the TripletEntry() constructor is used to create 
the (empty) elements of the list. But in your case, the list constructor 
tries to use the TripletEntry::operator=(TripletEntry&) function which 
is explicitly made private.

What happens when you comment out line 105 of 
src/Algorithm/LinearSolvers/IpTripletToCSRConverter.hpp ?

I doubt that it has something to do with the way MUMPS is provided to Ipopt.

Best,
Stefan

PS: If that does not work for you, Andreas would like to see you opening 
a ticket :-).


> I am trying to compile IpOpt-3.4.0 in Windows under MSys/MinGW.  I have gcc 
> 4.3.0.  The ./configure --enable-dos-compile goes through without any problem.  
> When I invoke make, compilation halts with the following error message:
> 
> c:\program 
> files\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_list.h:420:   
> instantiated from 'std::list<Ipopt::TripletToCSRConverter::TripletEntry, 
> std::allocator<Ipopt::TripletToCSRConverter::TripletEntry> >'
> IpTripletToCSRConverter.cpp:63:   instantiated from here
> IpTripletToCSRConverter.hpp:105: error: 'void 
> Ipopt::TripletToCSRConverter::TripletEntry::operator=(const 
> Ipopt::TripletToCSRConverter::TripletEntry&)' is private
> c:\program 
> files\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/boost_concept_check.h:209: 
> error: within this context
> IpTripletToCSRConverter.hpp: In member function 'void 
> __gnu_cxx::_SGIAssignableConcept<_Tp>::__const_constraints(const _Tp&) [with _Tp 
> = Ipopt::TripletToCSRConverter::TripletEntry]':
> c:\program 
> files\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/boost_concept_check.h:210:   
> instantiated from 'void __gnu_cxx::_SGIAssignableConcept<_Tp>::__constraints() 
> [with _Tp = Ipopt::TripletToCSRConverter::TripletEntry]'
> c:\program 
> files\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_list.h:420:   
> instantiated from 'std::list<Ipopt::TripletToCSRConverter::TripletEntry, 
> std::allocator<Ipopt::TripletToCSRConverter::TripletEntry> >'
> IpTripletToCSRConverter.cpp:63:   instantiated from here
> IpTripletToCSRConverter.hpp:105: error: 'void 
> Ipopt::TripletToCSRConverter::TripletEntry::operator=(const 
> Ipopt::TripletToCSRConverter::TripletEntry&)' is private
> 
> 
> Apparently a private function is being called directly.  Can someone please help 
> me here?
> 
> Thank you.
> 
> Krish
> 
> 
> --------------------------------------------------------------------------------
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. 
> <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 
>  >
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt


-- 
Stefan Vigerske
Humboldt University Berlin, Numerical Mathematics
http://www.math.hu-berlin.de/~stefan


More information about the Ipopt mailing list