49

CMakeLists.txtこのファイルに問題があります:

cmake_minimum_required(VERSION 2.6)

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)
SET(CMAKE_CXX_COMPILER C:/MinGW/bin/g++)

project(cmake_test)

add_executable(a.exe test.cpp)

でcmakeを呼び出すcmake -G "MinGW Makefiles"と、次の出力で失敗します。

c:\Users\pietro.mele\projects\tests\buildSystem_test\cmake_test>cmake -G "MinGW Makefiles" .
-- The C compiler identification is GNU 4.6.1
-- The CXX compiler identification is GNU 4.6.1
-- Check for working C compiler: C:/MinGW/bin/gcc
CMake Error: your C compiler: "C:/MinGW/bin/gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: C:/MinGW/bin/gcc -- broken
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
  The C compiler "C:/MinGW/bin/gcc" is not able to compile a simple test
  program.

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:10 (project)

CMake Error: your C compiler: "C:/MinGW/bin/gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "C:/MinGW/bin/g++" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!

ただし、gccコンパイラは稼働してC:/MinGW/bin/おり、動作します。

何か案が?

プラットホーム:

  • Windows 7
  • MinGW / GCC 4.6
4

4 に答える 4

76

CMakeLists.txtファイルにコンパイラを設定しようとしないでください。

別のコンパイラの使用方法については、CMakeのFAQを参照してください。

https://gitlab.kitware.com/cmake/community/wikis/FAQ#how-do-i-use-a-different-compiler

(方法3を試みており、FAQには「(避ける)」と書かれていることに注意してください...)

「CMakeLists内」の手法は避けることをお勧めします。これは、最初の構成に別のコンパイラーを使用すると問題が発生し、その後、CMakeListsファイルが変更されて別のコンパイラーを設定しようとするためです...そしてCMakeListsファイルの目的のためです。 CMakeを実行している開発者の好みに応じて、複数のコンパイラで動作する必要があります。

最良の方法は、環境変数を設定CCCXX、ビルドツリーで初めてCMakeを呼び出す前に設定することです。

CMakeは、使用するコンパイラを検出した後、それらをCMakeCache.txtファイルに保存して、それらの変数が環境から消えた場合でも適切なビルドシステムを生成できるようにします...

コンパイラを変更する必要がある場合は、新しいビルドツリーから始める必要があります。

于 2012-10-26T15:17:32.967 に答える
7

私はピエトロと同じような問題を抱えていました、

私はウィンドウ10を使用していて、「GitBash」を使用しています。>> cmake -G "MinGW Makefiles"を実行しようとしましたが、Pietroと同じエラーが発生しました。

次に、>> cmake -G "MSYS Makefiles"を試しましたが、環境を正しく設定する必要があることに気づきました。

必ずC:\ MinGW \ msys \ 1.0 \ binへのパスを設定し、そこにgcc.exeがあるかどうかを確認してください。gcc.exeがない場合は、C:/MinGW/bin/mingw-get.exeを実行し、MSYSからgccをインストールする必要があります。

その後、それは私のためにうまくいきます

于 2017-08-08T22:56:18.583 に答える
4

オプションで使用すると機能するFILEPATH場合があります。

set(CMAKE_CXX_COMPILER:FILEPATH C:/MinGW/bin/gcc.exe)
于 2018-12-31T10:00:52.427 に答える
2

私も同じ問題を抱えていました。そして私の場合、修正は非常に簡単でした。秘訣は、コンパイラのパスに「.exe」を追加することです。だから、代わりに:

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)

そのはず

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc.exe)

同じことがg++にも当てはまります。

于 2018-02-27T22:19:19.787 に答える