目录
记录一次编译错误,CMake不支持对subdirtory使用不同的编译器版本,gcc6和gcc7
- 项目情况:一个项目下有两个子项目
base-project
和base-project-gpu
,前者使用gcc-7
编译,后者由于cuda版本是9,所以最高支持到gcc-6
展开查看:项目主CMakeLists.txt目录截图
- 当在子项目base-project-gpu的CMakeLists.txt中设置编译器为
gcc-6
,但base-project使用gcc-7
时,会导致camke无限循环输出展开查看:子项目CMakeLists.txt使用gcc-6截图
- 解决方法:2个项目都用gcc-6,在主CMakeLists.txt中添加
C++17: gcc7完全支持,gcc6和gcc5部分支持,gcc6支持度当然比gcc5高,gcc4及以下版本不支持。 C++14: gcc5就可以完全支持,gcc4部分支持,gcc3及以下版本不支持set(CMAKE_C_COMPILER "/usr/bin/gcc-6") set(CMAKE_CXX_COMPILER "/usr/bin/g++-6")