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.


Comments

  1. Hi, I notice that:
    "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

    ReplyDelete
  2. Hi,
    I'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.

    ReplyDelete

Post a Comment

Popular posts from this blog

Heads up, upcoming incompatibility in the CP/Routing library

Documentation: new examples and reference manual

Changes in the last month - on windows this time