在VS Code中用CMake构建SDK遇NMake相关错误,求解决方案
解决方案:CMake 构建时 NMake 平台与编译器错误
问题分析
你的错误包含两个核心问题:
NMake Makefiles生成器不支持通过CMake参数直接指定平台(如-A x64),平台架构需通过系统环境变量预配置。- CMake无法找到C++编译器,导致
CMAKE_CXX_COMPILER未设置。
修复步骤
1. 配置x64架构的编译环境
必须先让终端处于对应架构的VS编译环境中:
- 直接打开Visual Studio x64原生工具命令提示符(根据你的VS版本选择,比如
x64 Native Tools Command Prompt for VS 2022),这个工具会自动配置好x64架构所需的所有环境变量,包括编译器、NMake的路径。 - 若要在VS Code终端中操作,手动执行VS环境配置脚本(以VS2022社区版为例):
注意替换路径中的版本和版本类型(如"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=x64Professional/Enterprise)。
2. 重新执行CMake,移除平台参数
NMake依赖环境变量确定架构,不需要在CMake命令中添加-A x64。进入你的build目录,执行:
cmake -G "NMake Makefiles" ..
(..指向存放CMakeLists.txt的SDK根目录)
3. 手动指定编译器(可选)
如果仍提示CMAKE_CXX_COMPILER not set,可以在CMake命令中直接指定VS的C++编译器:
cmake -G "NMake Makefiles" -DCMAKE_CXX_COMPILER="cl.exe" ..
确保cl.exe已在当前终端的PATH中(步骤1的环境配置会自动完成这一步)。
备选方案:换用支持平台参数的生成器
如果偏好通过CMake参数直接指定平台,可替换为Visual Studio生成器:
cmake -G "Visual Studio 17 2022" -A x64 ..
之后可使用MSBuild编译,或配合VS Code的CMake Tools插件进行构建。
内容的提问来源于stack exchange,提问作者siddhant thakur
相关产品推荐
相关产品推荐

