使用CMake编译时"CMAKE_CXX_COMPILER已损坏"

ptk*_*ato 10 gcc cmake

我正在尝试编译一个Git项目,我在使用CMake时遇到了一些问题.最初,它没有找到C++编译器并提示错误:

cmake ..
Run Code Online (Sandbox Code Playgroud)

找不到CMAKE_CXX_COMPILER.

通过将环境变量"CXX"或CMake缓存条目CMAKE_CXX_COMPILER设置为编译器的完整路径,或者如果它位于PATH中的编译器名称,告诉CMake在哪里找到编译器.

所以我做了:

CXX="gcc" cmake ..
Run Code Online (Sandbox Code Playgroud)

但是提示了另一个错误:

- CXX编译器标识未知
- 检查工作CXX编译器:/ usr/bin/gcc
- 检查工作CXX编译器:/ usr/bin/gcc -
/usr/share/cmake-3.0中的CMake错误/Modules/CMakeTestCXXCompiler.cmake:54(消息):
C++编译器"/ usr/bin/gcc"无法编译简单的测试程序.

如何解决此错误并编译项目?

thi*_*goh 25

build-essential如果你还没有这样做,你应该尝试安装.

试试这个

sudo apt-get update
sudo apt-get install -y build-essential
Run Code Online (Sandbox Code Playgroud)

  • 我最终做了:`sudo apt purge gcc-7 gcc-8 gcc-9 gcc-10 gcc c-compiler && sudo apt autoremove && sudo apt install gcc-9 g++-9 gcc g++ build-essential`,这解决了我的问题(即“找不到 CMAKE_CXX_COMPILER。如果路径中存在编译器名称,请告诉 CMake 在哪里。”) (4认同)
  • 这为我解决了这个问题。但为什么?`build-essential` 包有什么作用? (3认同)

Tsy*_*rev 14

您正在尝试将C编译器gcc用作C++编译器,这是错误的.

您需要安装g++或其他C++编译器.

  • 它可以,但它至少需要stdc ++库,它带有g ++.只需安装g ++,一切都可以无需干预就可以设置CXX变量. (2认同)