[SCIP] trouble with compilation

Tobias Achterberg achterberg at zib.de
Thu Sep 7 15:11:57 CEST 2017


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>


More information about the Scip mailing list