[SCIP] Installing SCIP linking CPLEX 12.8 under Windows using MinGW

Stefan Vigerske svigerske at gams.com
Wed May 20 10:13:49 CEST 2020


Hi,

I've never used the cmake system or PySCIPOpt so far and cannot help on 
that. Maybe someone else can.
But the linkerror in 3) looks like cplex.lib is missing in the linker 
flags. You may want to check how the linker is called.

Moving to Linux or WSL on Windows is certainly a good idea.

Regarding question 2: I doubt that this is possible in a reliable way. 
The LP solver is not like other plugins in SCIP. It is decided at 
buildtime which LP solver interface to use, not runtime. (I saw someone 
work around this, but that was a bit hacky and would also require to 
rebuild the SCIPoptsuite library.)

Stefan

On 5/20/20 6:30 AM, Shin, Jungeun wrote:
> (I am sending this email again after getting delivery failure alarm. If you got the duplicate emails, please disregard it. Sorry about the inconvenience)
> 
> 
> 
> Thank you, Stefan.
> 
> I resolved the problem with copying the CPLEX library and include directory into SCIP directory.
> 
> But I need to ask another fundamental installation question.
> 
> 
> 
> I want to build SCIPoptsuite linking Cplex as LP solver with CMake.
> 
> (I intend to use SCIP Python interface, pyscipopt. The website said Makefile system is not compatible with PySCIPOPT.
> 
> https://github.com/SCIP-Interfaces/PySCIPOpt/blob/master/INSTALL.md )
> 
> 
> 
>  From other mails in this archives, I found you suggested compiling it under MinGW, MSys, or MSys2 to install on Windows, which is Makefile system.  Given these conditions and answers from this archive, I have a few question about installation on Windows.
> 
> 
> 
> 1) Can I install SCIPoptsuite with lpx=cpx  using CMake On Window? If not, I would find a Linux server without wasting more time on it.
> 
> 
> 
> 2) Can I use pre-built SCIPoptsuite and set Cplex as LPsolver?
> 
> 
> 
> 3) I actually tried to install it with CMake, but since I wanted to make it as simple as possible, I set the most parameters as off besides SCIP.
> 
> (  cmake -Bbuild -H. -DZLIB=off -DREADLINE=off -DZIMPL=off -DGMP=off -DLPS=cpx -DSOPLEX=off -DGCG = off)  and added the CPLEX_INCLUDE path and CPLEX_LIBRARY path ( copied the file and paste it into SCIP directory and use those path).
> 
> Then, I got a bunch of unresolved external symbol error such as following error from the Visual studio.
> 
> 
> 
> Severity               Code     Description         Project File         Line        Suppression State
> 
> Error      LNK2019               unresolved external symbol __imp__CPXaddcols at 44 referenced in function _SCIPlpiAddCols                scip        C:\Program Files\scipoptsuite-7.0.0\build\scip\src\lpi_cpx.obj    1
> 
> 
> 
> It seems like it also needs cplex.dll as well as cplex.lib to link them. I tried to add it to Debug folder inside the build directory, but it still has an error.
> 
> I would appreciate any help.
> 
> Thank you
> 
> 
> 
> Best,
> 
> 
> 
> 
> 
> -----Original Message-----
> 
> Subject: Re: [SCIP] Installing SCIP linking CPLEX 12.8 under Windows using MinGW
> 
> 
> 
> Hi,
> 
> 
> 
> that paragraph in "Remarks on Installing under Windows using MinGW"
> 
> probably refers to a pretty old MinGW version. It was untouched since 2009.
> 
> 
> 
> SCIP tries to create a softlink lib/include/cpxinc that points to C:/Program Files/IBM/ILOG/CPLEX_Studio129/cplex/include/ilcplex/. This never worked reliably for me. Try to just copy the directory C:/Program Files/IBM/ILOG/CPLEX_Studio129/cplex/include/ilcplex/ to lib/include/cpxinc instead.
> 
> 
> 
> Best,
> 
> Stefan
> 
> 
> 
> On 5/16/20 6:54 PM, Shin, Jungeun wrote:
> 
>> Hi,
> 
>>
> 
>> I have been trying to install SCIP with Cplex 12.8 on Windows using MinGW and have some questions.
> 
>>
> 
>>
> 
>>
> 
>>     1.  I don't quite understand the following part of the "Remarks on Installing under Windows using MinGW" from installation information of your website.
> 
>>
> 
>>
> 
>> " Second you need to copy the file sh.exe to bash.exe otherwise various scripts (including makefiles) will not work. Normally unistd.h covers also the getopt-options, but for mingw you need to add the entry #include <getopt.h> into "/mingw/include/unistd.h" after the other include-entries (if not present)."
> 
>>
> 
>> What does it mean by copying the file sh.exe to bash.exe? Does it mean to change the file name? Also, there is no unistd.h file in my ""/mingw/include/".
> 
>>
> 
>> Directory of C:\msys\mingw32\include
> 
>>
> 
>> 05/05/2020  11:01 AM    <DIR>          .
> 
>> 05/05/2020  11:01 AM    <DIR>          ..
> 
>> 05/11/2018  09:34 PM            13,037 ansidecl.h
> 
>> 05/11/2018  09:34 PM           262,716 bfd.h
> 
>> 05/11/2018  09:34 PM            34,356 bfdlink.h
> 
>> 05/11/2018  09:35 PM            14,771 dis-asm.h
> 
>> 05/05/2020  11:01 AM    <DIR>          gdb
> 
>> 05/11/2018  09:36 PM             2,912 gnumake.h
> 
>> 05/05/2020  11:01 AM    <DIR>          libiberty
> 
>> 05/11/2018  08:28 PM             3,700 libmangle.h
> 
>> 05/11/2018  09:34 PM            14,593 plugin-api.h
> 
>> 05/11/2018  09:34 PM             2,191 symcat.h
> 
>>
> 
>>
> 
>>     1.  I proceeded to installation ignoring the part described in 1). Then, I encountered the following error, saying that my cplex directory is not a directory. Can this error related to bash.exe? or did I use wrong path?
> 
>>
> 
>>
> 
>> C:\Program Files\scip-7.0.0>make ZLIB=false READLINE=false GMP=false
> 
>> LPS=cpx
> 
>> -> generating necessary links
> 
>>
> 
>> - Current settings: LPS=cpx OSTYPE=mingw ARCH=x86 COMP=gnu
> 
>> SHARED=false SUFFIX= ZIMPL=false ZIMPLOPT=opt IPOPT=false IPOPTOPT=opt
> 
>> WORHP=false WORHPOPT=opt FILTERSQP=false EXPRINT=cppad GAMS=false
> 
>> SYM=none
> 
>>
> 
>> * 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.
> 
>>
> 
>>     -> "cpxinc" is the path to the CPLEX "include" directory, e.g., "<CPLEX-path>/include/ilcplex".
> 
>>     -> "libcplex.*.a" is the path to the CPLEX library, e.g., "<CPLEX-path>/lib/x86-64_linux/static_pic/libcplex.a"
> 
>>     -> "libcplex.*.so" is the path to the CPLEX library, e.g., "<CPLEX-path>/bin/x86-64_linux/libcplex1263.so"
> 
>>
> 
>>> Enter soft-link target file or directory for "lib/include/cpxinc" (return if not needed):
> 
>>> C:/Program Files/IBM/ILOG/CPLEX_Studio129/cplex/include/ilcplex/
> 
>> -> creating softlink "lib/include/cpxinc" -> "C:/Program Files/IBM/ILOG/CPLEX_Studio129/cplex/include/ilcplex/"
> 
>> ln: target `lib/include/cpxinc' is not a directory
> 
>> make[2]: *** [lib/include/cpxinc] Error 1
> 
>> make[1]: ***
> 
>> [lib/static/linkscreated.cpx-opt.mingw.x86.gnu.false-opt.false-opt.fal
> 
>> se.false.none.false] Error 2
> 
>> make: *** [preprocess] Error 2
> 
> 
> 
> 



More information about the Scip mailing list