我在基于Qt的新BB10平台上工作。
我有一个静态库项目,它定义了一个QObject
类(基本上该类发送信号并有几个插槽)。该项目编译良好,并为我提供了一个很好的libwhathever.a
文件
当我尝试在我的Cascades项目中包含这个库时,我在构建时遇到了这些错误:
- 未定义的引用 com :: vasco :: digipass :: sdk :: utils :: qrcodescanner :: MyClass :: staticMetaObject
- 未定义的引用 com :: vasco :: digipass :: sdk :: utils :: qrcodescanner :: MyClass :: newQRCodeDetected(QString)
- 未定义的引用 COM ::瓦斯科::动态密码器:: SDK :: utils的:: qrcodescanner :: MyClass的:: staticMetaObject 外部位置: c:\ Developer \ bbndk \ target_10_1_0_2342 \ qnx6 \ usr \ include \ qt4 \ QtCore \ qobject.h
- 未定义的引用 COM ::瓦斯科::动态密码器:: SDK :: utils的:: qrcodescanner :: MyClass的:: staticMetaObject 外部位置: c:\ Developer \ bbndk \ target_10_1_0_2342 \ qnx6 \ usr \ include \ qt4 \ QtDeclarative \ qdeclarative.h
- 未定义的引用 COM ::瓦斯科::动态密码器:: SDK :: utils的:: qrcodescanner :: MyClass的:: staticMetaObject 外部位置: c:\ Developer \ bbndk \ target_10_1_0_2342 \ qnx6 \ usr \ include \ qt4 \ QtDeclarative \ qdeclarative.h
- 对vtable的未定义引用 com :: vasco :: digipass :: sdk :: utils :: qrcodescanner :: MyClass
- 未定义 参考vtable for COM ::瓦斯科::的Digipass :: SDK :: utils的:: qrcodescanner :: MyClass的
我怀疑我错过了处理Q_OBJECT
宏的编译步骤。
我是在正确的轨道上吗?
我听说过moc
和qmake
,但我不知道在构建过程中如何使用它们或何时使用它们。
答案 0 :(得分:1)
简单的经验法则是每当您使用Q_OBJECT
引入新类时重新运行qmake,因为它会生成moc
文件。尝试干净,然后重新运行qmake,然后再次构建项目,它应该解决它。
答案 1 :(得分:0)
我在源文件和头文件上运行了qmake但由于某种原因它没有生成任何moc文件。
我实际上只是通过在定义Q_OBJECT的头文件上运行moc来解决我的问题。它生成了我需要的moc文件,我的未定义引用消失了。