我希望将SCIP优化套件6.0.2与Python接口PySCIPOpt一起使用,并启用调试。我在LinuxUbuntu18.04LTS中工作,没有sudo特权(我避免使用sudo,因为我想在集群上这样做,在集群中我没有sudo选项)。我按照SCIP和PySCIPOpt中的安装说明,尝试在我的主目录中安装SCIP,为cmake命令指定自定义路径。
我做了以下工作:
在我的.bashrc
i export SCIPOPTDIR=$HOME/scipoptsuite-6.0.2/build
里
然后在~/scipoptsuite-6.0.2
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$SCIPOPTDIR
产出:
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find BISON (missing: BISON_EXECUTABLE)
-- Could NOT find FLEX (missing: FLEX_EXECUTABLE)
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES)
-- Build shared libraries: ON
-- Build type: Debug
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find Readline (missing: Readline_INCLUDE_DIR Readline_LIBRARY)
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES)
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS)
-- Could NOT find ZIMPL (missing: ZIMPL_DIR)
-- Could NOT find IPOPT (missing: IPOPT_LIBRARIES) (Required is at least version "3.12.0")
-- Looking for FE_DOWNWARD
-- Looking for FE_DOWNWARD - found
-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR)
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
CMake Warning at scip/doc/CMakeLists.txt:19 (message):
Could not find all of doxygen, python, php, and bash in system path, which
are required for generation of documentation
-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR)
-- Build shared libraries: ON
-- Build type: Debug
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Could NOT find GSL: Found unsuitable version "", but required is at least "2.0" (found GSL_INCLUDE_DIR-NOTFOUND)
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES)
-- Could NOT find CLIQUER (missing: CLIQUER_INCLUDE_DIRS CLIQUER_LIBRARIES)
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS)
-- The following OPTIONAL packages have been found:
* PkgConfig
-- The following REQUIRED packages have been found:
* SOPLEX
* SCIP
-- The following OPTIONAL packages have not been found:
* BISON
* FLEX
* ZLIB
* Readline
* ZIMPL
* IPOPT (required version >= 3.12.0)
* Criterion
* GSL (required version >= 2.0)
* GMP
* CLIQUER
* HMETIS
* BLISS
-- Configuring done
-- Generating done
-- Build files have been written to: /home/avrech/scipoptsuite-6.0.2/build
然后:
cmake --build build
输出:
Scanning dependencies of target soplex_update_githash
-- Git hash: b8833cd3
[ 0%] Built target soplex_update_githash
Scanning dependencies of target libsoplex-pic
[ 0%] Building CXX object soplex/src/CMakeFiles/libsoplex-pic.dir/soplex/changesoplex.cpp.o
...
[100%] Building C object gcg/src/CMakeFiles/gcg.dir/solver_mip.c.o
[100%] Building C object gcg/src/CMakeFiles/gcg.dir/stat.c.o
[100%] Linking CXX executable ../../bin/gcg
[100%] Built target gcg
此时,build/bin/
中存在scip和soplex二进制文件,并且可以通过执行build/bin/scip
作为独立解决程序启动SCIP。但是,build/
目录不包含PySCIPOpt所需的include/
dir。
因此,根据这,我试图通过运行以下命令来安装SCIP:
cd build
make install
然后发生错误:
-- Git hash: b8833cd3
[ 0%] Built target soplex_update_githash
[ 5%] Built target libsoplex-pic
[ 11%] Built target libsoplex
[ 11%] Built target soplex
-- Git hash: e639a0059d
[ 11%] Built target scip_update_githash
[ 44%] Built target scip
[ 76%] Built target libscip
-- Git hash: 6a662daa
[ 76%] Built target gcg_update_githash
[ 88%] Built target libgcg
[100%] Built target gcg
Install the project...
-- Install configuration: "Debug"
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex/array.h
...
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex/wallclocktimer.h
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex.h
CMake Error at soplex/src/cmake_install.cmake:149 (file):
file INSTALL cannot find
"/home/avrech/scipoptsuite-6.0.2/build/bin/soplex".
Call Stack (most recent call first):
soplex/cmake_install.cmake:42 (include)
cmake_install.cmake:42 (include)
Makefile:73: recipe for target 'install' failed
make: *** [install] Error 1
我看到创建了(可能部分) include/
dir,但是由于未知的原因,soplex可执行文件消失了:
$ ls
bin include ...
$ ls bin
applications examples gcg interfaces scip
我做错了什么?
使用调试选项安装SCIP和PySCIPOpt的完整配方将是最好的。(如果需要,sudo特权是可用的)
谢谢。
发布于 2019-12-26 12:49:26
您只需为安装目标指定一个不同的目录即可。将SCIPOPTDIR设置为某些install/
dir而不是build/
,它应该可以工作。您不能使用相同的目录安装和生成。
PySCIPOpt正在搜索安装目录,所以您总是需要在构建项目之后运行安装。
只要您不想安装到某个系统目录,就不需要sudo进行任何操作。
https://stackoverflow.com/questions/59488449
复制相似问题