2013-11-26 128 views
6

我目前正在使用SWIG開發一個Python 2.7前端,用於CMAKE配置的C++項目(不是我自己開發的,我剛剛爲此項目啓動了CMAKE)。該項目編譯(並運行)在VS2010下使用FIND_PACKAGE for python和swig。但是,python 2.7(和其他版本)是使用VS2008編譯器編譯的,它與VS2010不是二進制兼容的。我已經安裝了Windows SDK 7編譯器,並且可以使用distutils編譯另一個SWIG項目(無CMAKE)。試圖通過CMake配置實際項目爲Visual Studio 2008,失敗:如何在安裝VS2010時使用CMAKE for Windows-SDK編譯器?

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  

(我代替我與XXX實際路徑)

發生這種情況無論是在Windows的SDK外殼,以及在一個正常的外殼。

當安裝另一個VS版本時,是否有人爲Windows SDK 7編譯器成功配置了CMAKE項目?如果是,如何? 最後我寧願使用CMAKE配置的python distutils構建,而不是使用生成的.sln文件構建項目。因此,創建VS2008 .sln/.prj並不重要。

回答

4

我只是打開SDK命令提示符,所以你想要的cl.exe(在VS 2008安裝目錄中)是PATH(你可以檢查這是where cl的情況)。

然後只需運行CMake和讓它產生NMAKE生成文件:

mkdir build && cd build 
cmake .. -G "NMake Makefiles" 

這應該確保你選擇的編譯器使用。

如果這也不起作用,SDK(或VS)應該附帶一個工具來使某個SDK版本成爲「當前」。

+1

您也可以使用CMake GUI界面。它允許您在嘗試配置時選擇構建環境。 – linello

+0

您可以使用「Visual Studio 2010」生成器並在命令行上使用msbuild。 –

+0

@linello我不知道CMake帶有圖形用戶界面接口';-)'。 – rubenvb

相關問題