- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我想用 -flto
编译我的项目用 --enable-gold
构建 gcc 就够了吗?或者我还需要建立黄金并用它替换 ld 吗?我还需要其他标志吗?即我正在做这个
gcc -flto one.c two.c
最佳答案
根据 https://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements ,
Despite the "link time" name, LTO does not need to use any special linker features. The basic mechanism needed is the detection of GIMPLE sections inside object files. This is currently implemented in
collect2
. Therefore, LTO will work on any linker already supported by GCC.
-fuse-linker-plugin
说:
This option is enabled by default when LTO support in GCC is enabled and GCC was configured for use with a linker supporting plugins (GNU ld 2.21 or newer or gold).
gold
即使您想使用特殊的“链接器插件”功能从库文件中的目标文件中获取优化信息。
-flto
documentation中有使用示例.任何一个
gcc -o myprog -flto -O2 foo.c bar.c
gcc -c -O2 -flto foo.c
gcc -c -O2 -flto bar.c
gcc -o myprog -flto -O2 foo.o bar.o
-flto
用于链接:
The only important thing to keep in mind is that to enable link-time optimizations you need to use the GCC driver to perform the link-step. GCC then automatically performs link-time optimization if any of the objects involved were compiled with the
-flto
.
Contrary to earlier GCC releases, the optimization and target options passed on the link command line are ignored.
关于gcc - 使用 flto 的要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688069/
我最近的一个程序高度依赖于内联一些“热门”函数来提高性能。这些热门函数是我不想更改的外部 .c 文件的一部分。 不幸的是,虽然 Visual 非常擅长此练习,但 gcc 和 clang 却不是。显然,
我使用的是 GCC 4.7.2 和 LD 2.23,但是当我将 -flto 添加到我的编译选项时,我的编译时间增加了 20% 以上!该手册似乎表明优化工作需要 -fuse-linker-plugin。
如果我想用 -flto 编译我的项目用 --enable-gold 构建 gcc 就够了吗?或者我还需要建立黄金并用它替换 ld 吗?我还需要其他标志吗?即我正在做这个 gcc -flto one.c
我有一大段代码,仅在某些版本的 gcc 上使用 -flto 编译时会产生错误。我将尝试总结如下 在文件 1.h 中 extern char A [100]; 在文件 1.c 中 #include "f
我试图将大量代码塞进一个相当小的 ARM 微 Controller 中。我已经在大小优化方面做了大量工作,而且我已经到了需要双重算术的地步,但是 __aeabi_ddiv , __aeabi_dadd
我的问题很简单,关键字 inline 对链接时间优化的看法有影响吗?对于链接时间优化,我指的是支持 -flto(链接时间优化)的 GCC 版本。 例如: main.c #include "b.h"
我在以下代码文件中遇到 getline 崩溃。我构建了 gcc7.2,因为系统更新不可用。 最小的例子: #include int main(int argc, char *argv[]) {
我正在尝试在 g++ 中启用链接时间优化。我的程序在没有 -flto 选项的情况下编译得很好。当我将它添加到我的 Makefile 时,目标文件编译时不会出现错误,例如 g++ main.cpp -I
我正在尝试使用 llvm-lld 链接已使用 -flto 编译的对象。 我在路径调用 lld 中有 ld 以及提供的所有参数。我创建了一个简单的 C++ 程序,我用 clang++ 编译它: #inc
我正在使用具有 AVR Atmega2560 芯片的 Arduino Mega 2560。我正在使用 Windows 上的 Arduino IDE 1.8.4 对其进行编程,它附带 avr-objdu
我知道较新的 GCC 版本引入了可能错误的字符串操作“stringop-truncation”的警告 这是我可以轻松触发此警告的示例代码: $ cat strncpy-warning.cxx #inc
我正在使用 SystemWorkbench 4 stm32 对 STM32F413 微 Controller 进行编程。中断 vector 在程序集启动文件中定义为弱别名,如下所示: .weak
我观察到带有 GCC 标志 -flto 的意外行为(至少我找不到解释)和 jemalloc/tcmalloc .一次-flto被使用并且我链接到上面的库 malloc/calloc 并且 friend
我正在使用 flto 构建应用程序,我想在 make 中使用的所有内核上并行化它,例如,如果我使用 make -j4 然后在 4 个内核上运行它 例子: cmake_minimum_required(
我是一名优秀的程序员,十分优秀!