15

プロジェクトをコンパイルしようとしていますが、gcc が壊れているというメッセージが表示されて CMake が最初から停止します (以下を参照)。CMakeに関しては無知なので、この問題のデバッグを開始するための助けがあれば大歓迎です。

  • GCC (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (GCC が「hello world」の問題をコンパイルすることを確認しました)
  • CMake バージョン2.8.7
  • CMake コマンド:cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../Mantid

端末への出力:

-- C コンパイラの識別は GNU です
-- CXX コンパイラの識別は GNU です
-- 少なくとも 3.6 (Helios) を前提として、Eclipse のバージョンを特定できませんでした。これが間違っている場合は、CMAKE_ECLIPSE_VERSION を調整します。
-- 動作中の C コンパイラを
確認します: /usr/bin/gcc-4.6 -- 動作中の C コンパイラを確認します: /usr/bin/gcc-4.6 -- /usr/share/cmake-2.8/Modules/CMakeTestCCompiler で壊れた
CMake エラーが発生しました.cmake:52 (メッセージ):
C コンパイラ "/usr/bin/gcc-4.6" は単純なテストプログラムをコンパイルできません。

次の出力で失敗します。

変更ディレクトリ: /home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp

ビルド コマンドを実行します:/usr/bin/make "cmTryCompileExec/fast"

/usr/bin/make -f CMakeFiles/cmTryCompileExec.dir/build.make CMakeFiles/cmTryCompileExec.dir/build

make[1]: ディレクトリ `/home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp' に入ります

/usr/bin/cmake -E cmake_progress_report /home/jmborr/devel/mantidproject/mantid/コード/デバッグ/CMakeFiles/CMakeTmp/CMakeFiles 1

C オブジェクトのビルド CMakeFiles/cmTryCompileExec.dir/testCCompiler.co

/usr/bin/gcc-4.6 /usr/include -o CMakeFiles/cmTryCompileExec.dir/testCCompiler.co -c /home/jmborr/devel/mantidproject/mantid/Code/debug/CMakeFiles/CMakeTmp/testCCompiler.c

gcc-4.6: 警告: /usr/include: リンクが行われていないため、リンカ入力ファイルは使用されていません

C 実行可能ファイルのリンク cmTryCompileExec

/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1

/usr/bin/gcc-4.6 /usr/include /usr/lib CMakeFiles/cmTryCompileExec.dir/testCCompiler.co -o cmTryCompileExec -rdynamic

/usr/bin/ld: 見つかりません /usr/include: ファイル形式が認識されません

/usr/bin/ld: 見つかりません /usr/lib: ファイル形式が認識されません

collect2: ld が 1 つの終了ステータスを返しました

make[1]: ディレクトリを離れます

4

2 に答える 2

4

このリンクを確認してください。

私も同じ問題を抱えていました。問題は、コンパイルするためにより多くのパラメーターが必要なことだと思います (リンカー スクリプト、フラグなど)。CMakeLists.txt を次のように変更して、もう一度試してください。

INCLUDE(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER(gcc GNU)
CMAKE_FORCE_CXX_COMPILER(g++ GNU)

環境変数にコンパイラへのパスを設定することを忘れないでください。

于 2013-05-17T08:20:52.263 に答える