相关疑难解决方法(0)

使用GCC的链接时优化与静态链接库

我正在尝试使用-fltoGCC(6.1.1)标志的链接时优化.

虽然它正常工作与我的代码,它不使用静态链接库,我也建,并与我的项目链接(该链接引擎和库是GLSL的优化,仅供参考).

这是输出:

...
/usr/bin/ranlib: ir_expression_flattening.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_function_inlining.cpp.o: plugin needed to handle lto object
/usr/bin/ranlib: opt_copy_propagation_elements.cpp.o: plugin needed to handle lto object
...
Run Code Online (Sandbox Code Playgroud)

在那之后,当然,我得到一些函数的几个"未定义的引用".

我做了一些研究,发现它可能是因为ar我应该尝试使用gcc-ar,但我不确定我该怎么做.

另外,我正在使用不支持lto的CMake(除了某些平台上的intel编译器,所以我读了......).尽管如此,我尝试使用:

set_property(TARGET glsl_optimizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
Run Code Online (Sandbox Code Playgroud)

哪个没用.

此外,我尝试了GCC的-fuse-linker-plugin旗帜,但没有奏效.

我想我将不得不手动使用旧的方式直接使用gcc-ar,或者可能还有其他一些方法?

gcc cmake lto

24
推荐指数
1
解决办法
8923
查看次数

标签 统计

cmake ×1

gcc ×1

lto ×1