从GCC切换到Clang的常见问题是什么?

时间:2018-08-15 21:52:59

标签: gcc g++ clang clang++ compiler-flags

假设我的C ++符合标准,并且我不依赖第三方库,那么在makefile中将“ g ++”替换为“ clang ++”时遇到的常见陷阱是什么?像不兼容的编译器选项,选项顺序的不同要求,其他一些限制等。

1 个答案:

答案 0 :(得分:0)

TL; DR: Clang与GCC高度兼容-试试吧。

在大多数情况下,Clang可用作替换的GCC(clangclang++是“ GCC兼容驱动程序”)。 Clang的设计考虑了GCC的兼容性,并且CCC中可用的大多数选项也应由Clang支持。

以我的经验,在多个项目中交替使用GCC和Clang时,我不记得有Clang成功的地方Clang编译失败的情况。

但是,根据项目的大小和复杂性,迁移可能并不完全顺利。可能有几个影响因素,包括编译器错误和不同的代码生成,这可能会影响应用程序性能,在极少数情况下甚至会影响应用程序功能。切换编译器是一个很大的变化,因此一旦能够成功构建,最好运行所有可用的测试和基准测试。

以下是SO中GCC和Clang可能不兼容的一些示例。很有可能,您不会遇到此类问题。

RE:选项顺序-GCC和Clang均以任何顺序接受编译器标志。