2017-05-07 40 views
0

cmakeは、Windows 10を使用してMinGWを使用して設定しようとしています。システムパスと環境パスの設定にパスc:/MinGW/binを含めました。私は私のパスからsh.exeを削除しましたが(可能であれば、これを保持できるのが大好きです)。Cmakeコンパイラの問題

CMakeLists.txt

cmake_minimum_required(VERSION 3.8) 

set(CMAKE_C_COMPILER "C:/MinGW/bin/gcc.exe") 
set(CMAKE_CXX_COMPILER "C:/MinGW/bin/gcc.exe") 

project (Tutorial) 
add_executable(Tutorial tutorial.cpp) 

出力

C:\School\athabascua\data structures\ass1>cmake -g "MinGW Makefiles" . 
-- The C compiler identification is GNU 5.3.0 
-- The CXX compiler identification is GNU 5.3.0 
-- Check for working C compiler: C:/MinGW/bin/gcc.exe 
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_b3144\fast" 
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken 
CMake Error at C:/Program Files/CMake/share/cmake-3.8/Modules/CMakeTestCCompiler.cmake:51 (message): 
The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test 
program. 

It fails with the following output: 

Change Dir: C:/School/athabascua/data structures/ass1/CMakeFiles/CMakeTmp 



Run Build Command:"nmake" "/NOLOGO" "cmTC_b3144\fast" 



Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" 
"cmTC_b3144\fast" 

GNUコンパイラが識別されているようですが、動作するようには思えません。どんな助けでも大歓迎です。私はCygwinを使用するのを避けようとしています。しかし、ここではそのルートに行く準備はほぼ完了です。

+1

cmakeは、nmakeを実行しようとしているので、Microsoftのツールチェーン用に設定されているようです。 –

+0

これは、Visual Studio Codeを使用しているので、nmakeのインストールを検討するためです。入力していただきありがとうございます – SuperVeetz

+2

私はむしろcmakeにMS nmakeの代わりにGNU makeを使用するよう提案しています。 'cmake -G" NMake Makefiles "の代わりに' cmake -G "MinGW Makefile" 'を試してください。https://cmake.org/Wiki/CMake_Generator_Specific_Information#Makefile_generators –

答えて

1

私が持っていた問題を解決するために、私は2つのことをしなければなりませんでした。 C++コンパイラの

  1. コマンドcmake -G "MinGW Makefiles" .(Windows上の資本-G)を使用
  2. Cコンパイラおよびg ++のためのgccを使用するために私のCMakeLists.txtファイルを更新

CMakeLists.txt

cmake_minimum_required(VERSION 3.8) 

set(CMAKE_C_COMPILER "C:/MinGW/bin/gcc.exe") 
set(CMAKE_CXX_COMPILER "C:/MinGW/bin/g++.exe") 

project (Tutorial) 
add_executable(Tutorial tutorial.cpp) 
+0

ええ、 'gcc'と' g ++ 'はどちらも同じコンパイラを実行しますが、デフォルトのオプションは異なります。リンクステップでは、ファイル名はすべて '* .o'となりますので、ファイル名にはC++ライブラリを使用する必要はありません。 –

+1

ちょうどFYI、あなたはCMakeLists.txt内の変数を設定しないので、代わりに '-DCMAKE_C_COMPILER =「C:/MinGW/bin/gcc.exe」コマンドラインでそれらを指定することによって、あなたのプログラムの移植を保つことができる-DCMAKE_CXX_COMPILER =" C :/ MinGW/bin/g ++。exe "'。 – dlasalle

関連する問題