我在上大学,在一个我们正在使用C的项目中,我们已经探索了GCC和Clang,并且Clang看起来比GCC更友好。因此,我想知道在Linux上使用clang和C++开发,而不是使用GCC,有什么优点或缺点?
在我的例子中,这将用于学生级别的程序,而不是生产。
如果我使用Clang,我应该使用GDB调试并使用GNU Make,还是使用另一个调试器和make实用程序?
发布于 2011-11-21 09:38:28
到目前为止,GCC对C++11特性的支持要比Clang好得多,也更完整。此外,GCC的代码生成器比Clang的代码生成器具有更好的优化性能(根据我的经验,我还没有看到过任何详尽的测试)。
另一方面,Clang通常比GCC更快地编译代码,并且在您的代码出现问题时生成更好的错误消息。
选择使用哪一个确实取决于什么东西对你来说是重要的。我更看重C++11支持和代码生成质量,而不是编译的便利性。正因为如此,我使用了GCC。对你来说,权衡可能是不同的。
发布于 2011-11-21 08:09:25
我使用两者都是因为它们有时会给出不同的、有用的错误消息。
当一个核心开发人员第一次尝试使用clang进行编译时,Python项目能够找到并修复许多小buglet。
发布于 2011-11-21 08:07:29
对于学生级别的课程,Clang的好处是,默认情况下,它的wrt更严格。C标准。例如,以下K&R版本的Hello World在没有警告的情况下被GCC接受,但被Clang拒绝,并带有一些非常描述性的错误消息:
main()
{
puts("Hello, world!");
}
对于GCC,你必须给它-Werror
,才能让它真正表明这不是一个有效的C89程序。此外,您仍然需要使用c99
或gcc -std=c99
来获取C99语言。
https://stackoverflow.com/questions/8205858
复制相似问题