9

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 で動作することを考えると、Windows の構成に関連するものである必要があります。

助けてくれてありがとう!

構成:
- Windows 7
- MinGW/GCC 4.6.1

4

3 に答える 3

5

-G "MSYS Makefiles"代わりにを使用すると、より良い結果が得られる可能性があります"MinGW Makefiles"が、警告しますが、遅くなります。

于 2013-08-16T07:26:14.770 に答える
3

これは C:/MinGW/msys/1.0/bin/、CMake と MinGW を使用してプロジェクトを生成するために、パスにあるためです。パスから削除し、C:/MinGW/bin/代わりに追加します

于 2015-01-22T10:58:25.190 に答える
2

PATH から sh.exe を削除すると改善されました。
エラーが増えますが、後の段階で...

于 2012-10-24T13:10:32.643 に答える