Link_Fire 2023-01-16 18:43 采纳率: 100%
浏览 18
已结题

Cbc构建cmake报错

问题遇到的现象和发生背景

@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)编译。
十分感谢!

  • 写回答

1条回答 默认 最新

  • 流比 2023-01-16 23:10
    关注

    这个错误信息表明CMake在构建时找不到Zlib库,这可能是由于没有安装Zlib库或者CMake没有正确配置Zlib库的路径。

    解决方法:

    安装Zlib库:可以在网上下载Zlib库并安装到自己的电脑上,然后在CMakeLists.txt文件中添加Zlib库的路径。

    修改CMake配置:在CMakeLists.txt文件中添加find_package(ZLIB REQUIRED)并指定Zlib库的路径。

    查看你电脑上是否已经安装了zlib库

    找到zlib.h和libz.a或者libz.dll并将其路径添加到CMakeLists.txt中
    另外,还有一个错误是在编译ClpTest.cpp文件时出现的,这个错误是由于缺少CLP_VERSION宏定义导致的。可以在ClpTest.cpp文件中添加上这个宏定义,或者在CMakeLists.txt文件中添加定义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月25日
  • 创建了问题 1月16日

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作