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

Tony Kelman kelman at berkeley.edu
Wed Aug 20 21:34:53 EDT 2014


Are you sure you were running make test before, or were you just building 
the Matlab interface? To run standalone executables like from make test then 
you'll need to add -lcsparse to other link flags too, not just in the 
MatlabInterface folder. I think there are some ADDLIBS configure variables 
you can set for this.


-----Original Message----- 
From: Senses,Begum
Sent: Wednesday, August 20, 2014 6:18 PM
To: Tony Kelman
Cc: Ipopt
Subject: Re: [Ipopt] Using a Third Party Software in IPOPT MA57 Interface


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