[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