【发布时间】:2017-08-04 10:37:51
【问题描述】:
我有一个 Subdirs 项目,有两个子项目。一个是 Qt Quick Controls 2 应用程序,另一个是 Qt Quick 2 扩展插件。
TestQtQuickPlugin ( Subdirs project )
|----app ( Qt Quick Controls 2 Application )
| |------main.cpp
| ...
|----plugin ( Qt Quick 2 Extension Plugin )
| |----MyItem.h
| |----MyItem.cpp
| ...
MyItem 类继承自 QQuickItem,它有一个方法 int getNum()。在main方法中,我会通过MyItem().getNum()调用这个方法。
在 Ubuntu 中,它编译并运行成功。但是在Windows中,会出现错误:
main.obj : error LNK2019: unresolved external symbol "public: __cdecl MyItem::MyItem(class QQuickItem *)" (??0MyItem@@QEAA@PEAVQQuickItem@@@Z) 在函数 main 中引用
main.obj : 错误 LNK2019: 函数 main 中引用的未解析的外部符号“public: virtual __cdecl MyItem::~MyItem(void)”(??1MyItem@@UEAA@XZ)
main.obj : 错误 LNK2019: 函数 main 中引用的无法解析的外部符号“public: int __cdecl MyItem::getNum(void)” (?getNum@MyItem@@QEAAHXZ)
我的项目有什么问题?
【问题讨论】:
-
您确定要在 C++ 中创建
QQuickItem派生类的实例吗? -
@KevinKrammer 不,我只想调用该类的静态方法
-
啊,好的,您的语法是创建一个临时实例并在其上调用一个方法