gpt4 book ai didi

c++ - 仅当 Qt 是使用 ltcg 构建时如何有条件地启用 ltcg?

转载 作者:行者123 更新时间:2023-11-30 04:58:11 25 4
gpt4 key购买 nike

qmake 项目有时是使用用 ltcg 编译的 Qt 构建的。由于 Qt 的 ltcg build设置不会自动传播到使用给定 Qt 安装的项目的设置,MSVC 链接器会浪费时间并发出以下警告:

MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance

如果构建它的 Qt 也启用了 ltcg,是否有办法有条件地为项目启用 ltcg?

最佳答案

事实证明,用于构建每个Qt 模块的配置选项都保留在QT.<module>.module_config 中。 , 其中<module>是模块的名称,例如core .

因此,假定每个 Qt 项目都使用 core模块,我们可以将该模块的选项转发到我们的项目文件中,如下所示:

contains(QT.core.module_config, ltcg) {
CONFIG += ltcg
msvc: QMAKE_LIBFLAGS *= /ltcg
}

QMAKE_LIBFLAGS Qt 的配置系统中缺少选项 - 图书管理员提示缺少 /ltcg就像链接器一样。

以下代码片段用于查找这些变量:

for(var, $$list($$enumerate_vars())) {
value = $$eval($$var)
contains(value, ltcg): message($$var = $$value)
}

关于c++ - 仅当 Qt 是使用 ltcg 构建时如何有条件地启用 ltcg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51774448/

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