CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!
时间: 2024-02-02 18:12:57 浏览: 355
这个错误通常是因为CMake在配置时没有找到合适的编译器。你可以尝试手动设置CMake的编译器,例如:
```
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
```
其中`/usr/bin/gcc`和`/usr/bin/g++`是你的编译器的路径。你也可以使用其他编译器的路径。另外,你也可以在CMakeLists.txt文件中设置编译器:
```
set(CMAKE_C_COMPILER "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER "/usr/bin/g++")
```
这样可以在不输入命令的情况下设置编译器。
相关问题
CMake Error at src/CMakeLists.txt:355 (target_compile_features): target_compile_features The compiler feature "cxx_variable_templates" is not known to CXX compiler "GNU" version 4.8.4. -- Configuring incomplete, errors occurred!
这个错误是由于你的编译器不支持 C++17 的变量模板特性导致的。你需要使用支持该特性的编译器或者禁用该特性。如果你使用的是 GCC 编译器,可以尝试升级到版本 5.4 或者更高版本,或者在 CMakeLists.txt 文件中添加以下代码来禁用该特性:
```cmake
target_compile_options(your_target_name PRIVATE -fno-implicit-templates)
```
这将禁止编译器隐式地生成变量模板实例化代码。
(base) lmj@lmj-Ubuntu:/opt/sdk.20230309/horus_sdk_release/build$ sudo cmake ../ -- cmake version 3.22.1 CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:11 (project): The CMAKE_C_COMPILER: arm-linux-gnueabihf-gcc is not a full path and was not found in the PATH. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. CMake Error at CMakeLists.txt:11 (project): The CMAKE_CXX_COMPILER: arm-linux-gnueabihf-g++ is not a full path and was not found in the PATH. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. -- Configuring incomplete, errors occurred! See also "/opt/sdk.20230309/horus_sdk_release/build/CMakeFiles/CMakeOutput.log". See also "/opt/sdk.20230309/horus_sdk_release/build/CMakeFiles/CMakeError.log".
根据你提供的错误信息,看起来 CMake 在配置项目时无法找到 C 和 C++ 编译器。这可能是由于缺少路径或编译器未正确安装所致。你可以尝试以下解决方法:
1. 确保你已经正确安装了 `arm-linux-gnueabihf-gcc` 和 `arm-linux-gnueabihf-g++` 编译器。你可以通过在终端中运行 `arm-linux-gnueabihf-gcc --version` 和 `arm-linux-gnueabihf-g++ --version` 来检查它们是否已安装。
2. 如果编译器已正确安装,但仍然无法找到,请尝试使用绝对路径设置环境变量 `CC` 和 `CXX`。例如,如果编译器的完整路径为 `/path/to/arm-linux-gnueabihf-gcc` 和 `/path/to/arm-linux-gnueabihf-g++`,你可以在终端中运行以下命令:
```
export CC=/path/to/arm-linux-gnueabihf-gcc
export CXX=/path/to/arm-linux-gnueabihf-g++
```
然后再次运行 `sudo cmake ../`。
3. 如果以上方法仍然无效,你可以尝试编辑 CMakeLists.txt 文件,在文件开头添加以下内容,指定编译器的完整路径:
```
set(CMAKE_C_COMPILER "/path/to/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/path/to/arm-linux-gnueabihf-g++")
```
然后保存文件并再次运行 `sudo cmake ../`。
希望这些方法能够解决你的问题。如果你有任何其他疑问,请随时提问。