[SCIP] Shared library build of SCIP on Mac OS X with gcc

Matthias Miltenberger miltenberger at zib.de
Tue Jul 26 14:50:58 CEST 2016


Hi Matthias,

please excuse us for not replying earlier.

I just tried to compile the SCIP Opt Suite 3.2.1 on a Mac and worked 
without issues (using the clang compiler); also PySCIPOpt works fine 
with this library. It does indeed generate a .so library instead of an 
.dylib but a at least according to this SO thread this does not seem to 
be a problem:

https://stackoverflow.com/questions/2339679/what-are-the-differences-between-so-and-dylib-on-osx

Concerning your difficulties with the compilation for Sage, I don't 
understand why you're compiling every component on its own instead of 
using the SCIP Opt Suite Makefile. You should only need the 
libscipopt.so and the include path of SCIP.

all the best
Matthias


On 25.07.2016 21:29, Matthias Koeppe wrote:
> In case anyone is interested, this Sage ticket shows the workarounds
> that I had to use to get it compiled.
> https://trac.sagemath.org/ticket/21094
>
> On Fri, Jul 15, 2016 at 9:38 AM, Matthias Koeppe
> <mkoeppe at math.ucdavis.edu> wrote:
>> I'm trying to make a shared library build of SCIP on Mac OS X with gcc.
>> Is this supposed to be a supported configuration?
>> I suspect it is not, because of the error that I get (see below) and
>> the fact that there is no sign of the "dyld" extension used by Mac OS
>> X in any of the Makefiles.
>> Any thoughts?
>>
>>
>> Concretely, I'm using the scipoptsuite 3.2.1 source package and trying
>> to build within SageMath, which brings its own gcc 4.9.2.
>>
>> I'm running:
>>
>> make VERBOSE=true SHARED=true USRLDFLAGS="$LDFLAGS"
>> USRCXXFLAGS="$CXXFLAGS" USRCPPFLAGS="$CPPFLAGS" USRARFLAGS="$LDFLAGS"
>>
>> which ends with the following error:
>>
>> g++  -L/Users/mkoeppe/cvs/sage/local/lib
>> -Wl,-rpath,/Users/mkoeppe/cvs/sage/local/lib  -m64 -shared -o
>> lib/libsoplex-2.2.1.darwin.x86_64.gnu.opt.so
>> obj/O.darwin.x86_64.gnu.opt/lib/changesoplex.o
>> obj/O.darwin.x86_64.gnu.opt/lib/clufactor.o
>> obj/O.darwin.x86_64.gnu.opt/lib/clufactor_rational.o
>> obj/O.darwin.x86_64.gnu.opt/lib/didxset.o
>> obj/O.darwin.x86_64.gnu.opt/lib/enter.o
>> obj/O.darwin.x86_64.gnu.opt/lib/gzstream.o
>> obj/O.darwin.x86_64.gnu.opt/lib/idxset.o
>> obj/O.darwin.x86_64.gnu.opt/lib/leave.o
>> obj/O.darwin.x86_64.gnu.opt/lib/mpsinput.o
>> obj/O.darwin.x86_64.gnu.opt/lib/nameset.o
>> obj/O.darwin.x86_64.gnu.opt/lib/rational.o
>> obj/O.darwin.x86_64.gnu.opt/lib/ratrecon.o
>> obj/O.darwin.x86_64.gnu.opt/lib/slufactor.o
>> obj/O.darwin.x86_64.gnu.opt/lib/slufactor_rational.o
>> obj/O.darwin.x86_64.gnu.opt/lib/solverational.o
>> obj/O.darwin.x86_64.gnu.opt/lib/solvereal.o
>> obj/O.darwin.x86_64.gnu.opt/lib/soplex.o
>> obj/O.darwin.x86_64.gnu.opt/lib/soplexlegacy.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxautopr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxbasis.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxboundflippingrt.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxbounds.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxchangebasis.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxdantzigpr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxdefaultrt.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxdefines.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxdesc.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxdevexpr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxequilisc.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxfastrt.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxfileio.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxgeometsc.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxgithash.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxharrisrt.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxhybridpr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxid.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxlpbase_rational.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxlpbase_real.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxmainsm.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxout.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxparmultpr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxquality.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxscaler.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxshift.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxsolve.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxsolver.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxstarter.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxsteeppr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxsumst.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxvecs.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxvectorst.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxweightpr.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxweightst.o
>> obj/O.darwin.x86_64.gnu.opt/lib/spxwritestate.o
>> obj/O.darwin.x86_64.gnu.opt/lib/statistics.o
>> obj/O.darwin.x86_64.gnu.opt/lib/usertimer.o
>> obj/O.darwin.x86_64.gnu.opt/lib/wallclocktimer.o
>> obj/O.darwin.x86_64.gnu.opt/lib/updatevector.o
>>
>> Undefined symbols for architecture x86_64:
>>
>>    "___gmpq_add", referenced from:
>>
>>        soplex::Rational::operator+(soplex::Rational const&) const in rational.o
>>
>>        soplex::Rational::operator+=(soplex::Rational const&) in rational.o
>>
>>        soplex::Rational::operator+(double const&) const in rational.o
>>
>>        soplex::Rational::operator+=(double const&) in rational.o
>>
>>        soplex::Rational::operator+(int const&) const in rational.o
>>
>>        soplex::Rational::operator+=(int const&) in rational.o
>>
>>        soplex::Rational::addProduct(soplex::Rational const&,
>> soplex::Rational const&) in rational.o
>>
>> .....
>>
>>    "_gzclose", referenced from:
>>
>>        gzstream::gzstreambase::~gzstreambase() in gzstream.o
>>
>>        gzstream::gzstreambase::~gzstreambase() in gzstream.o
>>
>>        gzstream::gzstreambuf::close()     in gzstream.o
>>
>>        gzstream::gzstreambase::~gzstreambase() in gzstream.o
>>
>>        gzstream::gzstreambase::close()     in gzstream.o
>>
>>        gzstream::gzstreambuf::~gzstreambuf() in gzstream.o
>>
>>        gzstream::gzstreambuf::~gzstreambuf() in gzstream.o
>>
>>        ...
>>
>>
>> It seems to help to add "-lgmp -lz" on this command line.
>>
>>
>> --
>> Dr. Matthias Koeppe . . . . . . . . . . . http://www.math.ucdavis.edu/~mkoeppe
>> Professor, Mathematics
>> Chair, Applied Mathematics (Graduate Group) . . http://appliedmath.ucdavis.edu
>
>

-- 
\__________________

Matthias Miltenberger
Zuse Institute Berlin
Takustr. 7, 14195 Berlin
www.zib.de/miltenberger
miltenberger at zib.de
+49 (30) 841 85-245


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5239 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listserv.zib.de/pipermail/scip/attachments/20160726/2903fa77/attachment.p7s>


More information about the Scip mailing list