Windows中的cmake问题

时间:2012-10-24 10:49:14

标签: windows gcc configuration 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中有效,它必须与Window的配置相关。

感谢您的帮助!

配置:
  - Windows 7
  - MinGW / GCC 4.6.1

3 个答案:

答案 0 :(得分:5)

使用-G "MSYS Makefiles"代替"MinGW Makefiles"可能会有更好的结果 - 但我警告你 - it is going to be slow

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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