安装VS2010时如何使用CMAKE for Windows-SDK编译器?

oek*_*pez 6 c++ cmake visual-studio-2010 python-2.7

我目前正在开发一个使用SWIG的Python 2.7前端,用于由CMAKE配置的C++项目(不是我自己开发的,我刚刚为这个项目启动了CMAKE).该项目在VS2010下使用FIND_PACKAGE为python和swig编译(并运行).但是,python 2.7(和其他版本)是使用VS2008编译器编译的,VS2008编译器与VS2010不是二进制兼容的.我已经安装了Windows SDK 7编译器,我可以使用distutils编译另一个SWIG项目(没有CMAKE).尝试使用CMAKE为Visual Studio 2008配置实际项目失败:

xxx> cmake . -G "Visual Studio 9 2008"
CMake Error: CMake was unable to find a build program corresponding to "Visual Studio 9 2008".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.          
CMake Error: Could not find cmake module file: xxx/CMakeFiles/2.8.12/CMakeCXXCompiler.cmake                                                    
CMake Error: Could not find cmake module file: xxx/CMakeFiles/2.8.12/CMakeCCompiler.cmake    
Run Code Online (Sandbox Code Playgroud)

(我用xxx替换了我的实际路径)

这在Windows-SDK shell和普通shell中都会发生.

当安装了另一个VS版本时,是否有人为Windows SDK 7编译器成功配置了CMAKE项目?如果有,怎么样?最后,我宁愿使用CMAKE配置的python distutils构建,而不是使用生成的.sln文件构建项目.因此,创建VS2008 .sln/.prj并不重要.

rub*_*nvb 4

我只需打开 SDK 命令提示符,这样您想要的 cl.exe(在 VS 2008 安装目录中)就在 PATH 中(您可以使用 检查是否属于这种情况where cl)。

然后运行 ​​CMake 并让它生成 NMake makefile:

mkdir build && cd build
cmake .. -G "NMake Makefiles"
Run Code Online (Sandbox Code Playgroud)

这应该确保使用您选择的编译器。

如果这也不起作用,SDK(或 VS)应该附带一个工具来使某个 SDK 版本成为“当前”版本。