gpt4 book ai didi

visual-c++ - 一次将所有源文件传递给编译器有什么好处吗?

转载 作者:行者123 更新时间:2023-12-04 04:27:14 27 4
gpt4 key购买 nike

我已阅读有关“整个程序优化”(wpo)和“链接时间代码生成”(ltcg)的信息。

我想知道如果我一次将所有源代码从 cli 传递给编译器(如“g++ a.cpp b.cpp”),是否会进行更多的模块间分析?
还是只是要启用其中一个标志?

编译器之间有区别吗?
例如,英特尔编译器能否从这种做法中受益,而其他编译器则不能?

最佳答案

I wonder is there more inter-module-analysis going on if I pass all sources at once to the compiler from the cli (like "g++ a.cpp b.cpp")?



对于 GCC,不,这样做不会启用任何 WPO,每个翻译单元都是单独处理的。我 99% 确定 Clang 也是如此,并且 90% 确定大多数其他编译器也是如此。

使用 GCC,要启用模块间优化,您需要通过 -flto 显式请求它。 switch,它仍然单独处理每个翻译单元,但是将附加信息写入目标文件,然后当它们链接在一起时,会进行进一步的优化以产生最终输出。

关于visual-c++ - 一次将所有源文件传递给编译器有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22219967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com