2016-08-31 24 views
-1

Configureボタンを押したときにCMakeにいくつか不思議な問題があります。CMakeが壊れたg ++を報告し、libiconv-2.dllが見つからない

私はいつもlibiconv-2.dllが見つからず、操作を完了できないと私に報告します。ただし、このライブラリはMinGW/binフォルダにあります。

私はCodeBlocks-MinGW MakefilesとCMakeバージョン3.6.1 - 32ビットバージョンを使用しています(これは64ビットバージョンでも同じですが)。

The CXX compiler identification is unknown

Check for working CXX compiler: C:/MinGW/bin/g++.exe

Check for working CXX compiler: C:/MinGW/bin/g++.exe -- broken

MinGWのは正しくシステムパスに追加され、私はバージョン(GNU 4.8.1)を確認し、また使用して、コマンドラインからシンプルなハロー世界をコンパイルすることができました: 一つ興味深いのは、コンソルにそれが表示されていることです。

g++ test.cpp -o test 

この同じCMakeListsファイルを同じ構成で、別のマシンでテストしますが、古いCMakeバージョン3.2.3はすべて動作します。オンラインでいくつかのリサーチを行っています。このファイルの問題は新しいものではないことがわかったので、これはバージョンの問題です。

誰でももっと何ができますか?

EDIT 1 これはCMakeError.log

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: C:/MinGW/bin/g++.exe Build flags: Id flags:

The output was: 1

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: C:/MinGW/bin/g++.exe Build flags: Id flags: -c

The output was: 1

Checking whether the CXX compiler is IAR using "" did not match "IAR .+ Compiler": g++.exe: fatal error: no input files compilation terminated. Determining if the CXX compiler works failed with the following output: Change Dir: C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp

Run Build Command:"C:/MinGW/bin/mingw32-make.exe" "cmTC_c9a03/fast" C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTC_c9a03.dir\build.make CMakeFiles/cmTC_c9a03.dir/build

mingw32-make.exe 1 : Entering directory 'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'

Building CXX object CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj

C:\MinGW\bin\g++.exe -o CMakeFiles\cmTC_c9a03.dir\testCXXCompiler.cxx.obj -c C:\Users\testuser\Desktop\build\CMakeFiles\CMakeTmp\testCXXCompiler.cxx

CMakeFiles\cmTC_c9a03.dir\build.make:64: recipe for target 'CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj' failed

mingw32-make.exe 1 : *** [CMakeFiles/cmTC_c9a03.dir/testCXXCompiler.cxx.obj] Error 1

mingw32-make.exe 1 : Leaving directory 'C:/Users/testuser/Desktop/build/CMakeFiles/CMakeTmp'

Makefile:125: recipe for target 'cmTC_c9a03/fast' failed

mingw32-make.exe: *** [cmTC_c9a03/fast] Error 2

の内容である私は手動グラムでファイルtestCXXCompiler.cppをコンパイルしている++、それが働きました。コンパイル中にエラーはありませんでした。

EDIT 2

私はこの問題は、いくつかの依存関係や他のいくつかのコード関連のものでないかどうかをテストするSSCCEを作成しました。しかし、このファイルをテスト:私はまだライブラリが不足しているとの問題を抱えている

#include <iostream> 

int main() 
{ 
    std::cout << "Test" << std::endl; 
    return 0; 
} 

CMakeLists.txt

cmake_minimum_required(VERSION 2.6) 
project(Test) 
add_executable(Test test.cpp) 

TEST.CPP。しかし、コンソールの出力はわずかに変更されました。現在は:

The C compiler identification is unknown

The CXX compiler identification is unknown

Check for working C compiler: C:/MinGW/bin/gcc.exe

Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken

+0

MinGWの壊れたインストールのようです。 – usr1234567

+0

@ usr1234567他のすべてのケースで、MinGWでコンパイルすることはできないので、Code-Blocksのコマンドラインから – sebap123

+0

CMakeが与えたのと同じコマンドでCMakeがCMakeError.outファイルに与えるテストプログラムをコンパイルできますか? – usr1234567

答えて

0

私は答えを見つけたと思います。少なくともそれは私のために働いています。

どうやら、他のマシンでCMakeをアドミニストレータとして実行する必要がありました。このようにして、GCCファイルに正しくアクセスできると仮定します。しかし、なぜ私は完全に他のマシン上でそれが必要とされていないとうまく働いたとは思えない。

関連する問題