有时使用使用ltcg编译的Qt构建qmake项目。由于Qt的ltcg构建设置不会自动传播到使用给定Qt安装的项目,因此MSVC链接器会浪费时间并发出以下警告:
MSIL .netmodule或使用/ GL编译的模块;用/ LTCG重新启动链接;将/ LTCG添加到链接命令行以提高链接器性能
是否有一种方法可以在项目Qt也启用ltcg的情况下有条件地为项目启用ltcg?
答案 0 :(得分:1)
事实证明,用于构建每个Qt模块的配置选项保留在myVaFunc
中,其中QT.<module>.module_config
是模块的名称,例如<module>
。
因此,鉴于每个Qt项目都使用core
模块,我们可以按照以下方式将选项从该模块转发到我们的项目文件中:
core
Qt的配置系统缺少contains(QT.core.module_config, ltcg) {
CONFIG += ltcg
msvc: QMAKE_LIBFLAGS *= /ltcg
}
选项-图书馆员抱怨缺少QMAKE_LIBFLAGS
,就像链接程序一样。
以下代码段用于查找这些变量:
/ltcg