Windows中的cmake问题

我想在Windows中用cmake和MinGW编译这个( 相当复杂的 )代码段:

#include <iostream> int main() { std::cout << "Test" << std::endl; return 0; } 

这是CMakeLists.txt文件(在Linux中可以正常工作):

 cmake_minimum_required(VERSION 2.6) SET(CMAKE_C_COMPILER path/to/gcc) SET(CMAKE_CXX_COMPILER path/to/g++) project(cmake_test) add_executable(a.exe test.cpp) 

用命令:

 cmake -G"MinGW Makefiles" . 

我得到这些错误:

 CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeMinGWFindMake.cmake:20 (MESSAGE): sh.exe was found in your PATH, here: C:/MinGW/msys/1.0/bin/sh.exe For MinGW make to work correctly sh.exe must NOT be in your path. Run cmake from a shell that does not have sh.exe in your PATH. If you want to use a UNIX shell, then use MSYS Makefiles. Call Stack (most recent call first): CMakeLists.txt:8 (project) CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Could not find cmake module file:C:/cmake_test/CMakeFiles/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Could not find cmake module file:C:/cmake_test/CMakeFiles/CMakeCXXCompiler.cmake -- Configuring incomplete, errors occurred! 

这些错误对我没有多大的帮助。 考虑到它在Linux中的作用,它必须是与窗口的configuration相关的东西。

感谢您的任何帮助!

组态:
– Windows 7的
– MinGW / GCC 4.6.1

Solutions Collecting From Web of "Windows中的cmake问题"

这是因为你已经在C:/MinGW/msys/1.0/bin/的路径中,用CMake和MinGW生成项目,从你的路径中删除它,并添加C:/MinGW/bin/

使用-G "MSYS Makefiles"而不是"MinGW Makefiles"可能会有更好的结果 – 但是我警告你 – 它会变得很慢 。

从PATH中删除sh.exe改进的东西。
我得到了更多的错误,但是在稍后阶段…