我正在遵循 QtEcho Plugin
示例并尝试编写复杂的应用程序。我的项目具有以下结构:
MainDir \
Main.pro
kernel \
kernel.pro
abstractinterface.h
main.cpp
testplugin \
testplugin.pro
abstractplugin.h
abstractplugin.cpp
问题出在插件头文件中:
#include <QObject>
#include <QtPlugin>
#include "abstractinterface.h"
class AbstractPlugin : public QObject, AbstractInterface
// An error appears here
// expected class-name before '{' token
{
Q_OBJECT
//... plugin initialization code ...
public:
explicit AbstractPlugin(QObject *parent = 0);
};
此外,自动完成找不到类 AbstractInterface。
所以,问题是:我做错了什么?在testplugin.pro
文件中我有行INCLUDEPATH += ../kernel/
。
任何帮助表示赞赏。
---- 编辑 -----
abstractinterface.h
#include <QtPlugin>
#define INTERFACE_ID "AbstractInterface/1.0"
class AbstractInterface
{
public:
virtual ~AbstractInterface();
virtual void init();
virtual void enable();
virtual void disable();
};
Q_DECLARE_INTERFACE(AbstractInterface, INTERFACE_ID)