2013-11-26 26 views
6

Tôi hiện đang devoloping một lối vào Python 2.7 sử dụng SWIG cho một dự án C++ được cấu hình bởi CMAKE (không được phát triển bởi bản thân mình, tôi vừa mới bắt đầu CMAKE cho dự án này). Dự án biên dịch (và chạy) tốt dưới VS2010 sử dụng FIND_PACKAGE cho python và swig. Tuy nhiên, python 2,7 (và phiên bản khác) được biên dịch bằng cách sử dụng trình biên dịch VS2008, mà không phải là nhị phân tương thích với VS2010. Tôi đã cài đặt trình biên dịch Windows SDK 7, và tôi có thể biên dịch một dự án SWIG khác (không có CMAKE) bằng cách sử dụng các distutils. Đang cố gắng để cấu hình các dự án thực tế với CMake cho Visual Studio 2008, không thành công với:Làm thế nào để sử dụng CMAKE cho trình biên dịch Windows-SDK, khi VS2010 được cài đặt?

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  

(tôi đã thay thế con đường thực tế của tôi với xxx)

Điều này xảy ra cả trong vỏ Windows SDK, cũng như trong một vỏ bình thường.

Có ai đã định cấu hình dự án CMAKE thành công cho trình biên dịch Windows SDK 7 không, khi một phiên bản VS khác được cài đặt? Nếu có, làm thế nào? Cuối cùng, tôi thà sử dụng cấu trúc phân vùng python được xây dựng bằng CMAKE, hơn là xây dựng dự án bằng cách sử dụng tệp .sln được tạo. Do đó, việc tạo một VS2008 .sln/.prj không quan trọng.

Trả lời

4

Tôi chỉ cần mở lời nhắc lệnh SDK, vì vậy cl.exe bạn muốn (trong thư mục cài đặt VS 2008) nằm trong PATH (bạn có thể kiểm tra trường hợp này là where cl).

Sau đó chỉ cần chạy CMake và để cho nó tạo ra makefiles nmake:

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

này phải đảm bảo trình biên dịch của bạn lựa chọn được sử dụng.

Nếu cách này không hoạt động, SDK (hoặc VS) sẽ đi kèm với công cụ để tạo một phiên bản SDK "hiện tại" nhất định.

+1

Bạn cũng có thể sử dụng giao diện GUI của CMake. Nó cho phép bạn chọn môi trường xây dựng khi bạn cố định cấu hình. – linello

+0

Và bạn có thể sử dụng trình tạo "Visual Studio 2010" và sử dụng msbuild trên dòng lệnh. –

+0

@linello Tôi không biết CMake đi kèm với giao diện Giao diện người dùng đồ họa ';-)'. – rubenvb

Các vấn đề liên quan