【问题标题】:How to keep CMake-QT generated MOCs in individual obj files?如何将 CMake-QT 生成的 MOC 保存在单个 obj 文件中?
【发布时间】: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


    【解决方案1】:

    似乎这是 CMake 的一个普遍问题:

    https://gitlab.kitware.com/cmake/cmake/issues/17277

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-23
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多