假设我的C ++符合标准,并且我不依赖第三方库,那么在makefile中将“ g ++”替换为“ clang ++”时遇到的常见陷阱是什么?像不兼容的编译器选项,选项顺序的不同要求,其他一些限制等。
答案 0 :(得分:0)
TL; DR: Clang与GCC高度兼容-试试吧。
在大多数情况下,Clang可用作替换的GCC(clang
和clang++
是“ GCC兼容驱动程序”)。 Clang的设计考虑了GCC的兼容性,并且CCC中可用的大多数选项也应由Clang支持。
以我的经验,在多个项目中交替使用GCC和Clang时,我不记得有Clang成功的地方Clang编译失败的情况。
但是,根据项目的大小和复杂性,迁移可能并不完全顺利。可能有几个影响因素,包括编译器错误和不同的代码生成,这可能会影响应用程序性能,在极少数情况下甚至会影响应用程序功能。切换编译器是一个很大的变化,因此一旦能够成功构建,最好运行所有可用的测试和基准测试。
以下是SO中GCC和Clang可能不兼容的一些示例。很有可能,您不会遇到此类问题。
RE:选项顺序-GCC和Clang均以任何顺序接受编译器标志。