cmake生成Makefile时指定c/c++编译器
时间: 2024-01-01 21:04:22 浏览: 34
可以通过在CMakeLists.txt中设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER来指定C和C++编译器。例如,以下代码将C编译器设置为gcc,C++编译器设置为g++:
```
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
```
你也可以通过在命令行中使用-D选项来指定编译器,例如:
```
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ..
```
相关问题
CMake Error at /home/jianhui.ge/cmake-3.18.0-Linux-x86_64/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:59 (message): The C++ compiler "/usr/bin/c++" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/jianhui.ge/XNNPACK/zhc_test/build/linux_x86/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make cmTC_ff260/fast && /usr/bin/make -f CMakeFiles/cmTC_ff260.dir/build.make CMakeFiles/cmTC_ff260.dir/build make[1]: Entering directory '/home/jianhui.ge/XNNPACK/zhc_test/build/linux_x86/CMakeFiles/CMakeTmp' Building CXX object CMakeFiles/cmTC_ff260.dir/testCXXCompiler.cxx.o /usr/bin/c++ -fPIE -o CMakeFiles/cmTC_ff260.dir/testCXXCompiler.cxx.o -c /home/jianhui.ge/XNNPACK/zhc_test/build/linux_x86/CMakeFiles/CMakeTmp/testCXXCompiler.cxx Linking CXX executable cmTC_ff260 /home/jianhui.ge/cmake-3.18.0-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff260.dir/link.txt --verbose=1 /usr/bin/c++ -llog -lz CMakeFiles/cmTC_ff260.dir/testCXXCompiler.cxx.o -o cmTC_ff260 /usr/bin/ld: cannot find -llog collect2: error: ld returned 1 exit status CMakeFiles/cmTC_ff260.dir/build.make:105: recipe for target 'cmTC_ff260' failed make[1]: *** [cmTC_ff260] Error 1 make[1]: Leaving directory '/home/jianhui.ge/XNNPACK/zhc_test/build/linux_x86/CMakeFiles/CMakeTmp' Makefile:140: recipe for target 'cmTC_ff260/fast' failed make: *** [cmTC_ff260/fast] Error 2
这个问题是由于 C++ 编译器 "/usr/bin/c++" 无法编译一个简单的测试程序所导致的。并且在链接过程中找不到名为 'liblog' 的库。你可以尝试以下步骤来解决这个问题:
1. 确保你的系统中已经安装了 C++ 编译器。你可以通过运行以下命令来检查:
```
which c++
```
如果没有输出路径,说明你需要安装 C++ 编译器。你可以通过安装适合你系统的 C++ 编译器来解决这个问题。
2. 确保 'liblog' 库已经安装并且可以在编译过程中被找到。你可以通过运行以下命令来确认是否已安装该库:
```
ldconfig -p | grep liblog
```
如果没有输出结果,说明你需要安装 'liblog' 库。你可以通过适合你系统的包管理器或者手动编译安装该库。
3. 如果 'liblog' 库已经安装但是仍然无法找到,你可以尝试在编译命令中显式地指定库的路径。例如,假设 'liblog' 库的路径是 '/path/to/liblog',你可以在编译命令中添加 `-L/path/to/liblog` 来指定库的路径。
请尝试上述步骤来解决问题,如果仍然遇到困难,请提供更多的上下文信息,以便我能够更好地帮助你。
cmake ../../../src -DCMAKE_CXX_COMPILER=${TargetCompiler} -DCMAKE_SKIP_RPATH=TRUE
这是一个使用CMake构建项目的命令。其中,"../../../src"表示项目源代码的相对路径,"-DCMAKE_CXX_COMPILER=${TargetCompiler}"表示设置C++编译器为${TargetCompiler},"-DCMAKE_SKIP_RPATH=TRUE"表示跳过RPATH的构建,即不将RPATH链接到生成的可执行文件中。
CMake是一个跨平台的构建系统生成工具,可以自动生成Makefile或Visual Studio项目等构建配置文件,从而简化了跨平台C++项目的构建过程。