Changing the way we link with SCIP
As of today, I pushed support for scip 4.0.0 on both unix and windows.
In the process, I have changed the way to setup or-tools to include scip at compilation time.
on Unix:
untar the scipoptsuite> archive somewhere
cd <path to scipoptsuite-4.0.0>
Mac OS X: make GMP=false READLINE=false TPI=tny
Linux: make GMP=false READLINE=false TPI=tny USRCFLAGS=-fPIC USRCXXFLAGS=-fPIC USRCPPFLAGS=-fPIC
in or-tools, edit Makefile.local
add:
UNIX_SCIP_DIR=<path to sciptopsuite-4.0.0>/scip-4.0.0
make clean
make cc
to test it, run:
bin/integer_programming
it should display the scip solver run.
on windows:
download the compiled library:
http://scip.zib.de/download.php?fname=scip-4.0.0.win.x86_64.vc14.opt.spx2.lib.zip
download the headers:
http://scip.zib.de/download/release/scipoptheaders-4.0.0.tgz
uncompress, untar everything.
create a directory that will contains what is needed
md scip-4.0.0
copy the include directory from the scipoptheaders archive inside this directory
copy the libscipopt.lib file inside this directory
copy the dll file somewhere on your path
add
WINDOWS_SCIP_DIR=<path to scip-4.0.0>
to Makefile.local
tools\make clean
tools\make cc
to test it, run:
bin\integer_programming
it should display the scip solver run.
Note: Make sure that paths do not contains spaces. I am not confident the makefiles are robust enough.
Next, I will do the same for glpk.
In the process, I have changed the way to setup or-tools to include scip at compilation time.
on Unix:
untar the scipoptsuite> archive somewhere
cd <path to scipoptsuite-4.0.0>
Mac OS X: make GMP=false READLINE=false TPI=tny
Linux: make GMP=false READLINE=false TPI=tny USRCFLAGS=-fPIC USRCXXFLAGS=-fPIC USRCPPFLAGS=-fPIC
in or-tools, edit Makefile.local
add:
UNIX_SCIP_DIR=<path to sciptopsuite-4.0.0>/scip-4.0.0
make clean
make cc
to test it, run:
bin/integer_programming
it should display the scip solver run.
on windows:
download the compiled library:
http://scip.zib.de/download.php?fname=scip-4.0.0.win.x86_64.vc14.opt.spx2.lib.zip
download the headers:
http://scip.zib.de/download/release/scipoptheaders-4.0.0.tgz
uncompress, untar everything.
create a directory that will contains what is needed
md scip-4.0.0
copy the include directory from the scipoptheaders archive inside this directory
copy the libscipopt.lib file inside this directory
copy the dll file somewhere on your path
add
WINDOWS_SCIP_DIR=<path to scip-4.0.0>
to Makefile.local
tools\make clean
tools\make cc
to test it, run:
bin\integer_programming
it should display the scip solver run.
Note: Make sure that paths do not contains spaces. I am not confident the makefiles are robust enough.
Next, I will do the same for glpk.
Hi, I notice that:
ReplyDelete"in or-tools, edit Makefile.local
add:
UNIX_SCIP_DIR=/scip-4.0.0
make clean
make cc""
If I just want to use the binary of or-tools, how do I link to SCIP path? I remember use MPSolver::USE_SCIP_INTEGER_PROGRAMMING is also OK
Hi,
ReplyDeleteI'm traying to compile the source code but i'm getting the following error
error LNK2001:
unresolved external symbol "class operations_research::MPSolverInterface * __cdecl operations_research::BuildSCIPInterface(class operations_research::MPSolver * const)" (?BuildSCIPInterface@operations_research@@YAPEAVMPSolverInterface@1@QEAVMPSolver@1@@Z)
does someone know that I miss?
Thanks in advance.
This comment has been removed by the author.
ReplyDeleteHi,
ReplyDeleteis SCIP 6.0.0 supported in the current version of ortools (on windows)?
Thanks in advance
This comment has been removed by a blog administrator.
ReplyDelete