【问题标题】:Using GCC 4.2 to compile *.mm files is very very slow, but LLVM has done a very good job, any difference?使用 GCC 4.2 编译 *.mm 文件非常非常慢,但是 LLVM 已经做得非常好,有什么不同吗?
【发布时间】:2011-11-22 14:10:17
【问题描述】:

我的项目是 obj-c 和 C++ 的混合体,由 *.m 和 *.mm 填充。

编译时,如果选择GCC 4.2,*.m obj-c 源文​​件编译速度非常快但是*.mm 非常非常慢,但是LLVM 2.0 可以做得很好,对于*.米和*.mm。

我的问题: 在编译 *.mm 文件期间,LLVM 和 GCC 4.2 有什么区别吗?为什么 GCC 3.2 这么慢?

任何 eda 或讨论将不胜感激,在此先感谢。

环境:XCODE 4.0.1

【问题讨论】:

    标签: gcc compilation llvm


    【解决方案1】:

    LLVM 和 GCC 4.2 在编译期间有什么区别吗 *.mm 文件?为什么 GCC 3.2 这么慢?

    是的;它们是完全不同的编译器;尽管实际效果相似(你得到一个忠实再现源代码语义的可执行文件),但基本上这个过程的一切都是不同的。 LLVM 的主要目标之一是提高编译速度。这是意料之中的。

    如果您想了解 LLVM 的内部结构,here's 是一个合理的起点。

    【讨论】:

      【解决方案2】:

      LLVM 是一个更新得多的编译器,是在过去 5 年中设计和编写的,而 gnu 编译器集合 (gcc) 已有 20 多年的历史并且非常臃肿,但可以处理很多语言。 在极少数情况下,gcc 优化会更好,但通常您应该只使用 LLVM。

      【讨论】:

        【解决方案3】:

        GCC 确实老了,但仍在进步。我建议你比较最近的版本,所以使用 GCC 4.6(vs LLVM 2.9)。您的 4.2 版本的 GCC 已经有几年历史了,从那以后在 GCC 方面已经取得了很多进展。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-22
          • 1970-01-01
          • 2017-02-05
          • 1970-01-01
          • 2017-12-12
          • 2015-06-14
          • 2013-05-14
          • 2013-04-18
          相关资源
          最近更新 更多