CMake抱怨“CXX编译器识别未知”

时间:2012-03-14 10:16:59

标签: linux cmake

我正在关注此thread和此one,以便在没有sudo权限的情况下构建我自己的KDE。由于工作站上没有安装Git和CMake。我只是将它们都安装在 / home /&lt;用户&gt; 并添加了 / home /&lt;用户&gt; / bin / home /&lt;用户&gt; / 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++吗?如何?或者有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:28)

在您的系统上运行$location

此软件包依赖于被认为对构建至关重要的其他软件包,并将安装它们。如果您发现必须构建软件包,这有助于避免零碎地解决依赖关系。

有关详细信息,请参阅this page

答案 1 :(得分:14)

您的/home/gnu/bin/c++似乎需要额外的标记来正确链接内容,而且CMake不知道这一点。

使用/usr/bin/c++作为编译器使用cmake运行-DCMAKE_CXX_COMPILER=/usr/bin/c++

此外,CMAKE_PREFIX_PATH变量设置应安装项目文件的目标目录。它与CMake安装前缀无关,CMake本身已经知道这一点。

答案 2 :(得分:2)

我刚刚设置了我的新笔记本电脑这个问题。我的问题是我的工具链(CodeSourcery)是32位,而我没有安装32位库。

sudo apt-get install ia32-libs