【发布时间】:2019-09-11 10:28:41
【问题描述】:
是否可以让 CMake-QT 在 AUTOMOC 期间生成单独的 .obj 文件,从而允许在链接时进行整体程序优化? 如果是 - 如何?
TLDR - 伪:
CMAKE_AUTOMOC ON => [mocs_compilation.obj != (moc_a.obj moc_b.obj)] => linker(one_instead_of_many.obj)? dependency missing : no dependency missing
情况
当我在项目中设置CMAKE_AUTOMOC ON 时,会在包含AUTOMOCed 文件的<project_name>_autogen 文件夹中创建一个名为mocs_compilation.cpp 的文件,从而创建一个 对象而不是多个单独的文件。
为什么我认为它很重要?
在 Visual Studio 2015 中使用链接时间代码生成/整个程序优化,我们的构建(使用自定义 moc 生成步骤和单独的 .boj 文件)可以毫无问题地工作 - 可能会摆脱不必要的 .obj 文件,从而甚至消除对额外的 LIB/DLL。
PS:顺便说一句,如果有人愿意创建一个,我真的认为应该有一个 cmake-qt 标签。
【问题讨论】:
标签: visual-studio qt cmake linker