この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 -G "MinGW Makefiles"
でcmakeを呼び出すと、次の出力で失敗します。
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/
にあり、動作します。
何か案が?
プラットフォーム:
CMakeLists.txt
ファイルでコンパイラを設定しようとしないでください。
別のコンパイラーの使用方法については、CMake FAQを参照してください。
https://gitlab.kitware.com/cmake/community/wikis/FAQ#how-do-i-use-a-different-compiler
(メソッド#3を試行しており、FAQが「(avoid)」と言っていることに注意してください...)
最初の構成に別のコンパイラーが使用されたときに問題が発生し、CMakeListsファイルが変更されて別のコンパイラーを設定しようとするため、「CMakeListsで」手法を避けることをお勧めします。 CMakeを実行している開発者の好みに応じて、複数のコンパイラを使用する必要があります。
最良の方法は、ビルドツリーでCMakeを初めて呼び出す前に、環境変数CC
およびCXX
を設定することです。
CMakeは使用するコンパイラを検出すると、CMakeCache.txt
ファイルに保存します。これらの変数が環境から消えても、適切なビルドシステムを生成できます。
コンパイラを変更する必要がある場合は、新しいビルドツリーから開始する必要があります。
Pietroと同様の問題がありましたが、
私はウィンドウ10で「Git Bash」を使用しています。 >> 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をインストールする必要があります。
その後、それは私のためにうまくいきます
FILEPATH
オプションを使用すると機能する場合があります。
set(CMAKE_CXX_COMPILER:FILEPATH C:/MinGW/bin/gcc.exe)
同じ問題がありました。そして私の場合、修正は非常に簡単でした。秘Theは、コンパイラパスに「.exe」を追加するだけです。だから、代わりに:
SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)
そのはず
SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc.exe)
同じことがg ++にも当てはまります。