[SCIP] trouble with compilation
Gregor Hendel
hendel at zib.de
Thu Sep 7 15:28:24 CEST 2017
Dear all,
As Matthias suggested, we now recommend to update to SCIP 4.0.1 and use
the new CMake system, see http://scip.zib.de/doc/html/CMAKE.php
for instructions.
If you insist on using make: the symbolic link for IPOPT should be a
directory containing your IPOPT installation, not the library.
It may be helpful to configure IPOPT like this:
./configure --enable-static --disable-shared
make && make install
The layout of my ipopt-build directory looks like this:
bin
coin_subdirs.txt
config.log
config.status
doxydoc
include
Ipopt
lib
libtool
Makefile
share
ThirdParty
Best regards,
Gregor
Am 07.09.2017 um 15:11 schrieb Tobias Achterberg:
> Hi all,
>
> [Dan: since this really seems to be a SCIP/IPOPT issue and nothing
> that is related to Gurobi, I move this back to the SCIP discussion
> list. Unfortunately, most of the SCIP folks are currently involved
> with the OR2017 conference, so you may need to wait until Monday to
> get an answer.]
>
> Dan is having trouble compiling SCIP with IPOPT, see below. Maybe
> someone can help.
>
>
> Cheers,
>
> Tobias
>
> Am 2017-09-07 um 14:18 schrieb Daniel Bienstock:
>> Hello,
>> I started from scratch. I built ipopt using the HSL libraries, by
>> the way. Here is what I get:
>>
>> blacknwhite:~/thirdparty/scipoptsuite-4.0.0> make LPS=grb ZIMPL=false
>> IPOPT=true GMP=false ZLIB=false READLINE=false
>> ** Extracting SCIP archive
>> "/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0.tgz".
>> make[1]: Entering directory '/home/dano/thirdparty/scipoptsuite-4.0.0'
>> ** Creating directory
>> "/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0/lib/static".
>> ** Creating directory
>> "/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0/lib/include".
>> ** Creating directory
>> "/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0/lib/include/zimplinc".
>>
>> ** Building SoPlex library
>> "/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0/lib/libsoplex.linux.x86_64.gnu.opt.a".
>> make[2]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>> make[2]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/soplex-3.0.0'
>>
>> ** ZIMPL support disabled.
>>
>> ** Creating necessary soft-links.
>>
>> ** Building SCIP libraries and executable.
>> make[2]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>> -> generating necessary links
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>> make[4]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>>
>> - Current settings: LPS=grb OSTYPE=linux ARCH=x86_64 COMP=gnu
>> SHARED=false SUFFIX= ZIMPL=false ZIMPLOPT=opt IPOPT=true IPOPTOPT=opt
>> EXPRINT=cppad GAMS=false
>>
>> * SCIP needs some softlinks to external programs, in particular,
>> LP-solvers.
>> * Please insert the paths to the corresponding directories/libraries
>> below.
>> * The links will be installed in the 'lib/include' and 'lib/static'
>> directories.
>> * For more information and if you experience problems see the INSTALL
>> file.
>>
>> -> "grbinc" is the path to the Gurobi "include" directory, e.g.,
>> "<Gurobi-path>/include".
>> -> "libgurobi.*" is the path to the Gurobi library, e.g.,
>> "<Gurobi-path>/lib/libgurobi.so"
>> -> "ipopt.linux.x86_64.gnu.opt" is a directory containing the
>> ipopt installation, i.e.,
>> "ipopt.linux.x86_64.gnu.opt/include/coin/IpIpoptApplication.hpp",
>> "ipopt.linux.x86_64.gnu.opt/lib/libipopt*", ... should exist.
>>
>>
>> > Enter soft-link target file or directory for "lib/include/grbinc"
>> (return if not needed):
>> > /opt/gurobi/gurobi702/linux64/include
>> -> creating softlink "lib/include/grbinc" ->
>> "/opt/gurobi/gurobi702/linux64/include"
>>
>>
>> > Enter soft-link target file or directory for
>> "lib/shared/libgurobi.linux.x86_64.gnu.so
>> <http://libgurobi.linux.x86_64.gnu.so>" (return if not needed):
>> > /opt/gurobi/gurobi702/linux64/lib/libgurobi.so.7.0.2
>> -> creating softlink "lib/shared/libgurobi.linux.x86_64.gnu.so
>> <http://libgurobi.linux.x86_64.gnu.so>" ->
>> "/opt/gurobi/gurobi702/linux64/lib/libgurobi.so.7.0.2"
>>
>>
>> > Enter soft-link target file or directory for
>> "lib/static/ipopt.linux.x86_64.gu.opt" (return if not needed):
>> > /home/dano/thirdparty/IPOPT/CoinIpopt/build/lib/libipopt.so.0.0.0
>> -> creating softlink "lib/static/ipopt.linux.x86_64.gnu.opt" ->
>> "/home/dano/thidparty/IPOPT/CoinIpopt/build/lib/libipopt.so.0.0.0"
>> make[4]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.'
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0
>> make[3]: Entering directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.'
>> -> compiling
>> obj/static/O.linux.x86_64.gnu.opt/lib/scip/branch_allfullstrong.o
>> cc1: error: lib/static/ipopt.linux.x86_64.gnu.opt/include/coin: Not a
>> directory
>> Makefile:1186: recipe for target
>> 'obj/static/O.linux.x86_64.gnu.opt/lib/scip/brnch_allfullstrong.o'
>> failed
>> make[3]: ***
>> [obj/static/O.linux.x86_64.gnu.opt/lib/scip/branch_allfullstrong.o
>> Error 1
>> make[3]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>> Makefile:1105: recipe for target 'libscip' failed
>> make[2]: *** [libscip] Error 2
>> make[2]: Leaving directory
>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>> Makefile.doit:227: recipe for target 'scipbinary' failed
>> make[1]: *** [scipbinary] Error 2
>> make[1]: Leaving directory '/home/dano/thirdparty/scipoptsuite-4.0.0'
>> Makefile:88: recipe for target 'scipbinary' failed
>> make: *** [scipbinary] Error 2
>>
>> ---------------------------------------------------------------------------------------------------------------------------------------------
>>
>>
>> If I remember correctly, in the past I bypassed this error by
>> manually creating the folder that the installation does not find
>> above, and typing the make command again. It went a little further
>> but it failed in the way that I had told you.
>>
>> Perhaps I should build scip as root? I am not sure I am parsing the
>> error message correctly. Thanks.
>>
>> On Tue, Aug 29, 2017 at 12:12 PM, Daniel Bienstock <dano at columbia.edu
>> <mailto:dano at columbia.edu>> wrote:
>>
>> Thanks ... I am at this meeting in France with very poor internet
>> access. I will go
>> through this again when I return. I built ipopt with one of the
>> hsl libraries.
>>
>> On Tue, Aug 29, 2017 at 3:53 PM Michael Winkler <winkler at gurobi.com
>> <mailto:winkler at gurobi.com>> wrote:
>>
>> Hi Daniel,
>>
>>
>> sorry for the late reply; I would try to start compiling it
>> from scratch without
>> copying header files. If you enter your preferred install
>> command, e.g., "make
>> LPS=grb ZIMPL=false IPOPT=true GMP=false ZLIB=false
>> READLINE=false" the
>> installation should ask to create soft links to all the
>> necessary third party
>> "packages", i.e., to Gurobi and IPOPT. If I remember
>> correctly you need to build
>> IPOPT by yourself including some third party software for
>> IPOPT, I think I used
>> Blas, Lapack, and Mumps (see the ThirdParty subdirectory in
>> IPOPT and in each of
>> them there is a "get.ThirdPartySoftwareName" script that
>> downloads and compiles it).
>>
>>
>> The SCIP installation with the above make command should ask
>> you something about
>> creating a soft link to ipopt which probably looks like this:
>>
>> - preparing missing soft-link "lib/ipopt.linux.x86_64.gnu.opt":
>> > Enter soft-link target file or directory for
>> "lib/ipopt.linux.x86_64.gnu.opt"
>> (return if not needed):
>> > /sw/ia64_lx26/ipopt-3.12.0/
>> -> creating softlink "lib/ipopt.linux.x86_64.gnu.opt" ->
>> "/sw/ia64_lx26/ipopt-3.12.0/"
>>
>>
>> I hope this helps a bit but if it fails we can dive deeper :).
>>
>> Best,
>> Michael
>>
>>
>>
>>
>> On 26.08.2017 07:45, Daniel Bienstock wrote:
>>> Hello Michael,
>>>
>>> thanks for writing back to me. Here is my make command:
>>>
>>> make LPS=grb ZIMPL=false IPOPT=true GMP=false ZLIB=false
>>> READLINE=false
>>>
>>> I have compiled scip before on another machine.
>>>
>>> Regards,
>>>
>>> On Fri, Aug 25, 2017 at 7:33 PM, Michael Winkler
>>> <winkler at gurobi.com
>>> <mailto:winkler at gurobi.com>> wrote:
>>>
>>> Hi Daniel,
>>>
>>>
>>> have you used the "IPOPT=true" in the make command,
>>> i.e., "make LPS=grb
>>> ZIMPL=false IPOPT=true", this should query for a link to
>>> the appropriate
>>> IPOPT include and libs (note that you still need to
>>> build IPOPT before
>>> this). Also (if not remove in the current SCIP version)
>>> you can call "make
>>> SOME_OPTIONS=what_you_need links" to get queried to
>>> create/renew the
>>> necessary soft links.
>>>
>>>
>>> Best,
>>>
>>> Michael
>>>
>>>
>>> On 25.08.2017 14:27, Daniel Bienstock wrote:
>>>> Thanks Tobias,
>>>>
>>>> The problems concern Ipopt. The first compilation
>>>> fails because Ipopt.h
>>>> is not found (there was no query for an Ipopt include
>>>> directory).
>>>>
>>>> So I copied all Ipopt header files to the appropriate
>>>> SCIP folder. In the
>>>> next compilation I am now only getting undefined
>>>> references. Here is the
>>>> end of the output:
>>>>
>>>> /home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0/lib/static/libnlpi.cppad.ipopt-4.0.0.linux.x86_64.gnu.opt.a(nlpi_ipopt.o):(.rodata._ZTV11ScipJournal[_ZTV11ScipJournal]+0x38):
>>>> undefined reference to
>>>> `Ipopt::Journal::IsAccepted(Ipopt::EJournalCategory,
>>>> Ipopt::EJournalLevel) const'
>>>> collect2: error: ld returned 1 exit status
>>>> make[4]: Entering directory
>>>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>>>> make[4]: Leaving directory
>>>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>>>> make[3]: Leaving directory
>>>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>>>> make[2]: Leaving directory
>>>> '/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0'
>>>>
>>>> ** Build complete.
>>>> ** Find your SCIP binary in
>>>> "/home/dano/thirdparty/scipoptsuite-4.0.0/scip-4.0.0/bin".
>>>> ** Enter "make test" to solve a number of easy
>>>> instances in order to verify
>>>> that SCIP runs correctly.
>>>>
>>>> make[1]: Leaving directory
>>>> '/home/dano/thirdparty/scipoptsuite-4.0.0'
>>>>
>>>>
>>>> ------------------------------------------------------
>>>>
>>>> And there is no scip binary in the indicated directory.
>>>> I have gmp,
>>>> readline, zlib (devel versions) installed but the
>>>> compilation can't find
>>>> them. This is the reason why I am using gurobi, by
>>>> the way: I was never
>>>> able to get soplex to compile.
>>>>
>>>> Thanks for your help!
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Aug 25, 2017 at 4:07 AM, Achterberg
>>>> <<mailto:Achterberg at zib.de>Achterberg at zib.de
>>>> <mailto:Achterberg at zib.de>> wrote:
>>>>
>>>> Is it the compiler or the linker that produces an
>>>> error? Which
>>>> file/symbol? If it is the linker and Gurobi symbols
>>>> you may need to
>>>> recompile our C++ API as this could be an ABI
>>>> mismatch. We ship the
>>>> source code of the C++ API with the distribution to
>>>> allow for this.
>>>>
>>>> Tobias
>>>>
>>>>
>>>> -------- Ursprüngliche Nachricht --------
>>>> Von: Daniel Bienstock
>>>> <<mailto:dano at columbia.edu>dano at columbia.edu
>>>> <mailto:dano at columbia.edu>>
>>>> Datum: 25.08.17 02:58 (GMT+01:00)
>>>> An: Achterberg
>>>> <<mailto:Achterberg at zib.de>Achterberg at zib.de
>>>> <mailto:Achterberg at zib.de>>
>>>> Cc: winkler at gurobi.com <mailto:winkler at gurobi.com>
>>>> Betreff: Re: [SCIP] trouble with compilation
>>>>
>>>> Well, I tried to recompile with Ipopt and now I am
>>>> getting C++
>>>> compilation errors ... using a very fresh Ipopt
>>>> build, so it should be
>>>> a recent version.
>>>>
>>>> On Thu, Aug 24, 2017 at 8:55 PM, Achterberg
>>>> <<mailto:Achterberg at zib.de>Achterberg at zib.de
>>>> <mailto:Achterberg at zib.de>> wrote:
>>>>
>>>> Hi Dan!
>>>>
>>>> Glad that it works. If you have any trouble
>>>> with the SCIP/Gurobi
>>>> connector, feel free to send me and/or Micha an
>>>> email. The
>>>> connector is relatively new and not very well
>>>> tested. In particular
>>>> the stuff with the ranged rows is relatively
>>>> complicated.
>>>>
>>>> I am on vacation for the next week, but Micha
>>>> should be available.
>>>>
>>>> Regards,
>>>>
>>>> Tobias
>>>>
>>>> -------- Ursprüngliche Nachricht --------
>>>> Von: Daniel Bienstock
>>>> <<mailto:dano at columbia.edu>dano at columbia.edu
>>>> <mailto:dano at columbia.edu>>
>>>> Datum: 25.08.17 01:44 (GMT+01:00)
>>>> An: <mailto:scip at zib.de>scip at zib.de
>>>> <mailto:scip at zib.de>
>>>> Betreff: Re: [SCIP] trouble with compilation
>>>>
>>>> Never mind -- I went through the process from
>>>> scratch and now it
>>>> worked. It was my mistake.
>>>>
>>>> On Thu, Aug 24, 2017 at 7:22 PM, Daniel Bienstock
>>>> <<mailto:dano at columbia.edu>dano at columbia.edu
>>>> <mailto:dano at columbia.edu>> wrote:
>>>>
>>>> Hello, this is for 4.0.0 compiled with
>>>>
>>>> LPS=grb ZIMPL=false
>>>> At the appropriate points I supply the path
>>>> to the gurobi
>>>> include directory and to the gurobi library
>>>> file (not directory).
>>>>
>>>> I get the following error:
>>>>
>>>> make[3]: *** No rule to make target
>>>> 'lib/include/grbinc/gurobi_c.h', needed by
>>>> 'obj/static/O.linux.x86_64.gnu.opt/lib/lpi/lpi_grb.o'. Stop.
>>>>
>>>> Any help, appreciated.
>>>> -- Daniel Bienstock
>>>> <http://www.columbia.edu/%7Edano>www.columbia.edu/~dano
>>>> <http://www.columbia.edu/~dano>
>>>>
>>>>
>>>>
>>>>
>>>> -- Daniel Bienstock
>>>> <http://www.columbia.edu/%7Edano>www.columbia.edu/~dano
>>>> <http://www.columbia.edu/~dano>
>>>>
>>>>
>>>>
>>>>
>>>> -- Daniel Bienstock
>>>> www.columbia.edu/~dano
>>>> <http://www.columbia.edu/%7Edano>
>>>>
>>>>
>>>>
>>>>
>>>> -- Daniel Bienstock
>>>> www.columbia.edu/~dano <http://www.columbia.edu/%7Edano>
>>>
>>> --
>>> --------------------------------------------------------------------
>>> Michael Winkler
>>> Software Developer
>>> Gurobi Optimization
>>> winkler at gurobi.de <mailto:winkler at gurobi.de>
>>>
>>> --------------------------------------------------------------------
>>> Sitz der Gesellschaft: Bad Homburg v.d.H.
>>> Registergericht: Bad Homburg v.d.H., HRB 12607
>>> Geschäftsführer: Robert E. Bixby, Dirk Zechiel
>>>
>>> -- Daniel Bienstock www.columbia.edu/~dano
>>> <http://www.columbia.edu/%7Edano>
>>
>> -- Daniel Bienstock
>> www.columbia.edu/~dano <http://www.columbia.edu/~dano>
>>
>>
>>
>>
>> --
>> Daniel Bienstock
>> www.columbia.edu/~dano <http://www.columbia.edu/~dano>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list