[Cbc] Static linking from own code in Linux
Gleb Belov
gleb.belov at monash.edu
Sun Feb 21 21:36:43 EST 2016
It links now! But:
bg at bg-vbox:/media/sf_SHARED/prj/libmzn/build$ mzn-cbc
mzn-cbc: error while loading shared libraries: libCgl.so.0: cannot open
shared object file: No such file or directory
I compiled cbc as follows:
./configure -C --disable-shared --enable-static && make -j 2 && make install
Gleb
On 22/02/2016 12:01 PM, Ted Ralphs wrote:
> I'm pretty sure this is a link order problem. If you modify the link
> order to
>
> -lCbcSolver -lCbc -lCgl -lOsiClp -lClpSolver -lClp -lOsi -lCoinUtils
>
> I'm guessing the problem will go away. I had forgotten that I guess
> this was only a problem with static libraries.
>
> Ted
>
> On Sun, Feb 21, 2016 at 7:07 PM, Gleb Belov <gleb.belov at monash.edu
> <mailto:gleb.belov at monash.edu>> wrote:
>
> Hi Ted,
>
> the linker does not really find any functions in the libraries,
> although it finds all the .a files. The relevant part of cmake's
> output is attached. Here are the contents of CBC's lib directory:
>
> bg at bg-vbox:/media/sf_SHARED/prj/libmzn/build$ ls $OSICBC_HOME/lib
> libCbc.a libCbcSolver.a libCgl.a libClp.a libClpSolver.a
> libCoinUtils.a libOsi.a libOsiCbc.la libOsiClp.la
> libOsiCommonTests.la pkgconfig
> libCbc.la libCbcSolver.la libCgl.la libClp.la libClpSolver.la
> libCoinUtils.la libOsiCbc.a libOsiClp.a libOsiCommonTests.a
> libOsi.la
>
> Looking for one of the functions missed, writeMpsNative, gives:
>
> bg at bg-vbox:/media/sf_SHARED/prj/libmzn/build$ grep writeMpsNative
> $OSICBC_HOME/lib/*
> Binary file /home/bg/Documents/prj/coin-Cbc-2.9/lib/libCbc.a matches
> Binary file /home/bg/Documents/prj/coin-Cbc-2.9/lib/libCbcSolver.a
> matches
> Binary file /home/bg/Documents/prj/coin-Cbc-2.9/lib/libOsi.a matches
> Binary file /home/bg/Documents/prj/coin-Cbc-2.9/lib/libOsiCbc.a
> matches
> Binary file /home/bg/Documents/prj/coin-Cbc-2.9/lib/libOsiClp.a
> matches
> Binary file
> /home/bg/Documents/prj/coin-Cbc-2.9/lib/libOsiCommonTests.a matches
> grep: /home/bg/Documents/prj/coin-Cbc-2.9/lib/pkgconfig: Is a
> directory
>
>
> Gleb
>
> On 22/02/2016 10:36 AM, Ted Ralphs wrote:
>> As far as I know, there shouldn't be anything special you need to
>> do in order to link to static libraries in Linux. What's the
>> error? On Windows, we only support generation of static libraries
>> at this point, so nothing should be any different there.
>>
>> Ted
>>
>> On Sun, Feb 21, 2016 at 6:02 PM, Gleb Belov
>> <gleb.belov at monash.edu <mailto:gleb.belov at monash.edu>> wrote:
>>
>> Now it works with 2268 without any further changes, thank you.
>>
>> Next question: when configuring with --enable-static
>> --disable-shared, the /lib forlder has only .a (and probably
>> .la) files and the examples' Makefile is not much different.
>> However my executable does not link. Is there any specific
>> link flag in this case? What is under Win?
>>
>
>
>
>
> --
> Dr. Ted Ralphs
> Professor, Lehigh University
> (610) 628-1280
> ted 'at' lehigh 'dot' edu
> coral.ie.lehigh.edu/~ted <http://coral.ie.lehigh.edu/%7Eted>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20160222/18693dd4/attachment.html>
More information about the Cbc
mailing list