【问题标题】:QT qmake instructions in defines?定义中的 QT qmake 指令?
【发布时间】:2013-11-21 10:21:11
【问题描述】:

是否可以在定义中使用 QT qmake 指令?

我尝试通过定义创建一个 QT 插件接口类:

#define PLUGIN(NAME) \
class NAME ## Plugin : public QObject, public IPluginInterface \
{ \
Q_OBJECT \
Q_PLUGIN_METADATA(IID "org.my.Plugins" FILE "NAME ## .json") \
Q_INTERFACES(IPluginInterface) \
public: \
virtual ~NAME ## PluginInterface(){} \
NAME ## PluginInterface(){} \
/* implementation of interface */
}; \
NAME ## Plugin NAME ## plugininterface;

但是在运行 qmake 并让我的程序不加载插件之后。 消息是:插件验证数据不匹配

【问题讨论】:

    标签: c++ qt plugins


    【解决方案1】:

    不,这(直接)不可能,因为moc 不进行预处理。请参阅Qt docs for moc 中的相关部分。

    如果您手动运行预处理器(通过一些技巧不扩展 moc 使用的宏,如 Q_OBJECT)然后在预处理文件上运行 moc,您可能会侥幸成功。但这需要在您的构建系统中提供重要的支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多