[Ipopt] Using a Third Party Software in IPOPT MA57 Interface

Senses,Begum bgmsenses at ufl.edu
Wed Aug 20 21:18:49 EDT 2014


Unfortunately It is still not working.

On Wed, 20 Aug 2014 18:03:00 -0700, Tony Kelman wrote:
> I don't think csparse uses pkg-config, but I could be wrong there.
>
> Try
> @COIN_HAS_PKGCONFIG_TRUE at LIBS =
> `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt |
> sed -e 's/-framework vecLib//g'` -lcsparse
>
> And if you're on a system that doesn't have pkg-config installed,
> then you'll need to add -lcsparse to the line that starts with
> @COIN_HAS_PKGCONFIG_FALSE at LIBS = ...
>
>
>
> -----Original Message----- From: Senses,Begum
> Sent: Wednesday, August 20, 2014 5:59 PM
> To: Tony Kelman
> Cc: Ipopt
> Subject: Re: [Ipopt] Using a Third Party Software in IPOPT MA57 
> Interface
>
>
> Hi Tony,
>
> I downloaded Ipopt again did all of these steps again and it still 
> does
> not work. I have also tried adding the changes to the Makefile.in 
> file.
>
> @COIN_HAS_PKGCONFIG_TRUE at LIBS = 
> `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@
> @PKG_CONFIG@ --libs ipopt | sed -e 's/-framework vecLib//g'` I 
> changed
> this line with
>
> @COIN_HAS_PKGCONFIG_TRUE at LIBS = 
> `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@
> @PKG_CONFIG@ --libs ipopt csparse | sed -e 's/-framework vecLib//g'`
>
> and then ran the configure script again but it is still not working.
>
>
> On Wed, 20 Aug 2014 17:45:49 -0700, Tony Kelman wrote:
>> Begum,
>>
>> Sounds like you reran configure since you made that change. 
>> Configure
>> auto-generates the Makefiles from Makefile.in, overwriting any 
>> changes
>> you made. Try making the change where you add -lcsparse to LIBS in
>> Makefile.in instead, then run configure and it should work again.
>>
>> -Tony
>>
>>
>> -----Original Message----- From: Senses,Begum
>> Sent: Wednesday, August 20, 2014 5:36 PM
>> To: Ipopt
>> Subject: [Ipopt] Using a Third Party Software in IPOPT MA57 
>> Interface
>>
>>
>> Hello everyone,
>>
>> I am trying to use a Third party software in
>>
>> 
>> ../CoinIpopt/Ipopt/src/Algorithm/LinearSolvers/IpMa57SolverInterface.cpp.
>> This third party software is called CSPARSE which is written by Tim
>> Davis. I was able to use this software in this file before but it
>> stopped working. Obviously I have changed something somewhere but I
>> could not find it maybe one of you can think of anything.
>>
>> These are the steps that I am performing right now.
>>
>> 1) Compile the third party software and obtain libcsparse.a library.
>> 2) Copy this library to CoinIpopt/lib folder.
>> 3) Copy the main .h file of CSPARSE (cs.h) to the same folder with
>> IpMa57SolverInterface.cpp file which is in
>> CoinIpopt/Ipopt/src/Algorithm/LinearSolvers folder.
>> 4) Modify the makefile in 
>> CoinIpopt/Ipopt/contrib/MatlabInterface/src .
>> I used to have LIBS = -L/CoinIpopt/lib -lipopt . I added -lcsparse 
>> to
>> this line.
>> 5) The last step is adding
>>
>> extern "C"
>> {
>>
>> #include "cs.h"
>>
>> }
>>
>> command at the beginning of the IpMa57TSolverInterface.cpp file.
>>
>> As I mentioned before these steps used to work fine but now when I 
>> run
>> make test it gives me the following error
>>
>> Undefined symbols for architecture x86_64:
>>   "_cs_amd", referenced from:
>>       Ipopt::Ma57TSolverInterface::SymbolicFactorization(int const*,
>> int const*) in libipopt.a(IpMa57TSolverInterface.o)
>>
>> cs_amd is the function that I am trying to use from CSPARSE 
>> software.
>>
>> Thank you.

-- 
Senses, Begum


More information about the Ipopt mailing list