问题遇到的现象和发生背景
@ymzhu385
你好,我尝试按照你的Cbc构建教程在我自己的电脑上编译,但是没能成功。
我的环境是win11,用VS Code+mingw64+cmake。
遇到的现象和发生背景,请写出第一个错误信息
我能够访问Github,所以我直接复制了你的第一部分代码,那些git能够成功通过。但是cmake分析的时候好像提示
[cmake] -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
生成的时候提示
[build] [ 49%] Building CXX object C:/Visual Studio/RWA_cmake/_deps/clp-build/Clp/CMakeFiles/ClpSolver.dir/src/MyEventHandler.cpp.obj
[build] [ 50%] Building CXX object C:/Visual Studio/RWA_cmake/_deps/clp-build/Clp/CMakeFiles/ClpSolver.dir/src/MyMessageHandler.cpp.obj
[build] [ 50%] Building CXX object C:/Visual Studio/RWA_cmake/_deps/clp-build/Clp/CMakeFiles/ClpSolver.dir/src/unitTest.cpp.obj
[build] C:\Visual Studio\RWA_cmake\_deps\clp-src\Clp\test\ClpTest.cpp: In function 'int main(int, const char**)':
[build] C:\Visual Studio\RWA_cmake\_deps\clp-src\Clp\test\ClpTest.cpp:18:35: error: 'CLP_VERSION' was not declared in this scope
[build] std::cout << "clp version: " << CLP_VERSION << std::endl;
[build] ^~~~~~~~~~~
[build] C:\Visual Studio\RWA_cmake\_deps\clp-src\Clp\test\ClpTest.cpp:18:35: note: suggested alternative: 'OSI_VERSION'
[build] std::cout << "clp version: " << CLP_VERSION << std::endl;
[build] ^~~~~~~~~~~
[build] OSI_VERSION
[build] mingw32-make.exe[2]: *** [C:\Visual Studio\RWA_cmake\_deps\clp-build\Clp\test\CMakeFiles\ClpTest.dir\build.make:76: C:/Visual Studio/RWA_cmake/_deps/clp-build/Clp/test/CMakeFiles/ClpTest.dir/ClpTest.cpp.obj] Error 1
[build] mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:1198: C:/Visual Studio/RWA_cmake/_deps/clp-build/Clp/test/CMakeFiles/ClpTest.dir/all] Error 2
[build] mingw32-make.exe[1]: *** Waiting for unfinished jobs....
[build] [ 50%] Linking CXX shared library "C:\Visual Studio\RWA_cmake\lib\libClpSolver.dll"
[build] [ 51%] Linking CXX shared library "C:\Visual Studio\RWA_cmake\lib\libOsiClp.dll"
[build] [ 51%] Built target OsiClp
[build] [ 51%] Built target ClpSolver
[build] mingw32-make.exe: *** [Makefile:135: all] Error 2
[proc] The command: "C:\Program Files\CMake\bin\cmake.EXE" --build "c:/Visual Studio/RWA_cmake/build" --config Debug --target all -j 26 -- exited with code: 2 and signal: null
[build] Build finished with exit code 2
我的解答思路和尝试过的方法
看起来是缺了一个依赖项,导致程序没有正常编译通过,就算我注释掉报错的这行代码:
std::cout << "clp version: " << CLP_VERSION << std::endl;
生成的exe文件仍然不能正常执行。
我也尝试了在Windows上安装ZLIB,然后在CmakeLists文件中添加
set(ZLIB_LIBRARY “C:/Program Files (x86)/GnuWin32/bin”)
set(ZLIB_INCLUDE_DIR “C:/Program Files (x86)/GnuWin32/include”)
但生成时依然会报错。
我想要达到的结果
希望你有时间能够答疑解惑,或者有别的方法能够实现CBC的C++项目跨平台(Windows和Linux)编译。
十分感谢!