gpt4 book ai didi

c++ - 带 LTO 的静态链接可执行文件(链接时间优化): how to make it with previously built libraries

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:05 25 4
gpt4 key购买 nike

在使用 g++4.9 的 Ubuntu 上,我按照它的说明构建了一个静态库(称之为 libZeroMQ.a),并且它是在没有“-flto”(链接时间优化)的情况下构建的。

现在我正在开发一个使用 libZeroMQ.a 的项目(称之为 MyEXE),我将静态链接所有库。我想用 LTO 构建 MyEXE。

我有两个选择:

A) 构建 MyEXE,在编译和链接时使用“-flto”。与之前构建的 libZeroMQ.a 链接。

B) 破解(更改)ZeroMQ 的配置/构建脚本,添加“-flto”,并重建 libZeroMQ.a。然后通过链接新的 libZeroMQ.a 来构建 MyEXE。当然,在编译和链接 MyEXE 时仍然使用“-flto”。

在MyEXE的性能方面,我认为:

  1. B) 优于 A),因为它允许在链接时考虑更多代码(特别是 ZeroMQ 中的代码)进行优化。

  2. A) 仍然比根本不使用 LTO 好。

我的理解对吗?谢谢!

最佳答案

我真的很难将其作为一个答案而不是评论,但它是一个答案:

是的,你的理解是正确的。

关于c++ - 带 LTO 的静态链接可执行文件(链接时间优化): how to make it with previously built libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44071521/

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