[Cbc] Static linking from own code in Linux

Ted Ralphs ted at lehigh.edu
Mon Feb 22 12:25:46 EST 2016


Just to follow up on the list and bring this to a resolution, deleting some
stray .so files did fix the problem.

Cheers,

Ted

On Mon, Feb 22, 2016 at 5:43 AM, Stefan Vigerske <stefan at math.hu-berlin.de>
wrote:

> Hi,
>
> delete the .so files from $OSICBC_HOME/lib before you link your
> executable, or link with -static.
>
> Stefan
>
> On 02/22/2016 03:36 AM, Gleb Belov wrote:
>
>> 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>
>>>
>>
>>
>>
>>
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/cbc
>>
>>
>
> --
> http://www.gams.com/~stefan
>



-- 
Dr. Ted Ralphs
Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20160222/35a0a66a/attachment.html>


More information about the Cbc mailing list