【问题标题】:CMake complains "The CXX compiler identification is unknown"CMake 报错“CXX 编译器标识未知”
【发布时间】:2023-03-16 03:33:02
【问题描述】:

我正在关注 threadone 来构建我自己的 KDE,而无需 sudo 许可。由于工作站上没有安装 Git 和 CMake。我只是将它们都安装在 /home/ 下并添加了 /home//bin/home//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++ 吗?如何?或者有什么办法可以解决这个问题?

【问题讨论】:

    标签: linux cmake


    【解决方案1】:

    在您的系统上运行apt-get install build-essential

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

    请参阅this page 了解更多信息。

    【讨论】:

    • 请添加一些关于您的解决方案的 cmet,说明它为什么以及如何解决问题
    【解决方案2】:

    您的 /home/gnu/bin/c++ 似乎需要额外的标志才能正确链接事物,而 CMake 对此一无所知。

    要将/usr/bin/c++ 用作编译器,请运行cmake-DCMAKE_CXX_COMPILER=/usr/bin/c++

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

    【讨论】:

    • -DCMAKE_CXX_COMPILER=/usr/bin/c++ 解决了我在 Windows 10 bash shell 上的问题。我在为 WebAssembly 安装“Emscripten”时遇到了这个问题
    • 如果你还需要配置 "-DCMAKE_C_COMPILER=" 你需要添加 "/usr/bin/gcc"
    【解决方案3】:

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

    sudo apt-get install ia32-libs
    

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 2022-07-12
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多