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

Tony Kelman kelman at berkeley.edu
Wed Aug 20 21:03:00 EDT 2014


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