多个子项目使用不同的编译器会导致无限循环的bug
目录
记录一次编译错误,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")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix