cmake .. -G "Visual Studio 17 2022" -A Win32 //vs2022
cmake .. -G "Visual Studio 15 2017" -A Win32 //vs2017
-DBUILD_DEPS=ON //联网下载
-DCMAKE_INSTALL_PREFIX=install //带安装命令
-DCMAKE_CXX_FLAGS="/utf-8" //强制使用 UTF-8 编码
//编译
cmake --build . --config Release
//安装
cmake --install . --config Release
# 设置 HTTP/HTTPS 代理(替换为你的代理地址和端口)
set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080
在命令提示符(CMD)中:
-
查看
http_proxy
环境变量:echo %http_proxy%
-
查看
https_proxy
环境变量(如果也设置了):echo %https_proxy%
//查看git clone是否能用
git clone https://hub.fastgit.org/madler/zlib.git
解决D040:创建子进程或与子进程通讯时出错:
cmake --build . --config Release -- /m:1 /p:UseMultiToolTask=true /p:TrackFileAccess=false
- **
/p:TrackFileAccess=false
**:禁用文件访问追踪,减少防病毒软件干扰。 /p:UseMultiToolTask=true
**:优化单线程模式下的任务调度策略,解决进程通信错误
编译器优化 + 指定编码:
-DCMAKE_CXX_FLAGS="/O1 /utf-8"
完整示例:
cmake .. -G "Visual Studio 15 2017" -A Win32 -DCMAKE_CXX_STANDARD=11 -DBUILD_DEPS=ON -DBUILD_PYTHON=OFF -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_FLAGS="/O1 /utf-8"
# 强制指定调试运行时库(MDd)
cmake .. -G "Visual Studio 17 2022" -A Win32 ^
-DCMAKE_BUILD_TYPE=Debug ^
-DCMAKE_CXX_FLAGS_DEBUG="/MDd /D_ITERATOR_DEBUG_LEVEL=0"
2. 配置 CMake 生成 Debug 版库
运行以下命令生成支持 MDd
的编译配置:
mkdir build && cd build
cmake .. -G "Visual Studio 17 2022" -A x64 ^
-DCMAKE_BUILD_TYPE=Debug ^
-DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreadedDebugDLL" ^
-DBUILD_DEPS=ON ^
-DUSE_SCIP=OFF
参数详解:
-G "Visual Studio 17 2022"
: 指定 VS2022 生成器(与您的开发环境一致)-A x64
: 编译 x64 架构-DCMAKE_BUILD_TYPE=Debug
: 生成调试版本(强制启用MDd
和_DEBUG
宏)-DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreadedDebugDLL"
: 强制使用MDd
运行时库-DBUILD_DEPS=ON
: 自动编译依赖库(如 Protobuf)并统一使用MDd
-DUSE_SCIP=OFF
: 禁用 SCIP 支持(可选,减少编译时间)
3. 编译 or-tools 库
- 打开生成的
or-tools.sln
解决方案文件。 - 在 Visual Studio 顶部选择 **
Debug
配置**。 - 右键解决方案 → 生成解决方案。
4. 验证编译结果
使用 dumpbin
检查库文件是否匹配 MDd
:
dumpbin /DIRECTIVES or-tools-9.6\build\lib\ortools.lib | findstr "RuntimeLibrary"
预期输出:
/DEFAULTLIB:MSVCRTD # 表示使用 MDd 运行时库
最后基本的cmake编译:
Windows下:Linux不需要指定编译器
mkdir build_x86 && cd build_x86
cmake .. -G "Visual Studio 17 2022" -A Win32 -DBUILD_DEPS=ON(联网下载)-DCMAKE_INSTALL_PREFIX=install(安装)
cmake --build . --config Release(编译)
cmake --install . --config Release(安装)