【问题标题】:Passing arguments from qmake to moc per header将参数从 qmake 传递给每个标头的 moc
【发布时间】:2016-05-05 15:20:18
【问题描述】:

我希望能够将参数从 qmake 项目传递给 moc 编译器,但仅限于特定文件。

例如,在一些 .pro 文件中:

HEADER += foo.h \
          bar.h \
          baz.h

我想将 -ffoo_extra.h 传递给 foo.h,-fbar_extra.h 传递给 bar.h,而没有传递给 baz.h

This answer 建议使用QMAKE_MOC 变量,但这会同时影响所有标题。像这样但针对单个头文件的东西是理想的。

【问题讨论】:

    标签: qt qt-creator qmake moc


    【解决方案1】:

    -f 参数将包含添加到生成的输出中。您可以通过利用 Q_MOC_RUN 宏来实现相同的目的。这是even documented - 连同命令行选项,不少于:)

    // foo.h
    #ifdef Q_MOC_RUN
    #include "foo_extra.h"
    #endif
    ...
    
    // bar.h
    #ifdef Q_MOC_RUN
    #include "bar_extra.h"
    #endif
    ...
    

    【讨论】:

    • 看来这是唯一可行的方法了。
    • 希望有一些侵入性较小的东西(在这种情况下重新设计外部项目以使用 qmake 而不是 cmake,并不想编辑文件),并且更通用(例如将选项传递给个人其他区域的文件,而不仅仅是 moc)将其标记为已回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2016-05-22
    • 2016-03-31
    相关资源
    最近更新 更多