web-dev-qa-db-ja.com

CMakeは「CXXコンパイラの識別は不明です」と不平を言います

私はこれを thread とこの one に従って、Sudoパーミッションなしで自分のKDEを構築しています。ワークステーションにGitとCMakeがインストールされていなかったため。 / home/<user>の下にインストールし、/ home/<user>/binを追加しましたおよび/ home/<user>/libをPATHとLD_LIBRARY_PATHの両方に。 KDEビルドはCMakeのみをサポートしているため、構成はサポートしていません。そのため、次のようにCMakeでプレフィックスを設定する必要があります:cmake ~/kde-devel/src/kdelibs -DCMAKE_INSTALL_PREFIX=/home/<user>。この時点で、以下のエラーが発生しました:

> ~/bin/cmake ~/kde-devel/src/kdelibs -DCMAKE_INSTALL_PREFIX=/home/<user>
-- The CXX compiler identification is unknown
-- Check for working CXX compiler: /home/gnu/bin/c++
-- Check for working CXX compiler: /home/gnu/bin/c++ -- broken
CMake Error at /home/<user>/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake:45 (MESSAGE):
  The C++ compiler "/home/gnu/bin/c++" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: /home/<user>/kde-devel/build/kdelibs/CMakeFiles/CMakeTmp



  Run Build Command:/usr/bin/gmake "cmTryCompileExec/fast"
  ...

2つのC++コンパイラがあることを確認しました。

> where c++
/home/gnu/bin/c++
/usr/bin/c++

CMakeのデフォルトC++コンパイラを/usr/bin/c++に設定する必要がありますか?そしてどうやって?または、この問題を修正する方法はありますか?

13
Stan

/home/gnu/bin/c++は、物事を適切にリンクするために追加のフラグを必要とするようで、CMakeはそれについて知りません。

/usr/bin/c++をコンパイラとして使用するには、-DCMAKE_CXX_COMPILER=/usr/bin/c++cmakeを実行します。

また、CMAKE_PREFIX_PATH変数は、プロジェクトのファイルをインストールする宛先ディレクトリを設定します。 CMakeのインストールプレフィックスとは関係がなく、CMake自体はすでにこれを知っています。

17
arrowd

実行apt-get install build-essentialシステム。

このパッケージは、ビルドに不可欠であると考えられる他のパッケージに依存し、それらをインストールします。パッケージをビルドする必要がある場合、依存関係の断片的な解決を回避するのに役立ちます。

詳細については、 このページ を参照してください。

32
Ramzes

新しいラップトップのセットアップでこの問題が発生しました。私にとっての問題は、ツールチェーン(CodeSourcery)が32ビットであり、32ビットライブラリをインストールしていなかったことです。

Sudo apt-get install ia32-libs
2
jason