在Windows上构建恶意框架时对"DummyInputMethod3::staticMetaObject"的未定义引用
undefined reference to `DummyInputMethod3::staticMetaObject' when building maliit framework on windows
所以我试图在Windows机器上使用Qt Creator构建Maliit框架https://github.com/maliit。到目前为止,我已经修复了几个windows兼容性问题:https://github.com/RHawkeyed/framework。但是现在我得到了这个错误:undefined reference to 'DummyInputMethod3::staticMetaObject'
in qobject。h
从我通过谷歌发现的类似问题的答案来看,这通常是由于没有在头文件中定义qobject,忘记添加Q_OBJECT宏或moc没有正常运行造成的。这似乎不是这里的情况,DummyInputMethod3是在它自己的头中定义的:
class DummyInputMethod3 : public MAbstractInputMethod
{
Q_OBJECT
...
和moc_dummyinputmethod3.cpp是在我期望的路径中生成的。
头文件也列在概要文件中,因为它应该是:
HEADERS +=
dummyimplugin3.h
dummyinputmethod3.h
有什么问题吗?
编译时出现错误:
https://github.com/RHawkeyed/framework在Qt Creator 3.5.0使用MinGW 4.9.2 32位和Qt 5.5.0
qmake文件使用了几个linux命令,所以我将cygwin https://www.cygwin.com/添加到系统路径中。
使用msvc编译
我没有绑定到特定的编译器,我只需要为windows编译。用msvc编译是完全可以接受的。实际上,我开始尝试用msvc进行编译,但在遇到一些问题并看到应该用mingw进行编译的建议后,我尝试了用msvc进行编译。无论如何,我现在可以在mingw和msvc中编译相同的错误:
https://github.com/RHawkeyed/frameworkQt 5.5
MSVC2013 32位
我相当肯定我已经正确地解决了这个特殊的问题。windows dll需要导入/导出。它会在linux上自动发生。这就是为什么maliit是跨平台的。
我仍然没有maliit键盘工作正常。示例应用程序启动,但是我无法显示键盘。不管怎样,这是另一个问题,如果我不完全放弃它。
我目前的进度在github上:
https://github.com/RHawkeyed/framework https://github.com/RHawkeyed/plugins- 没有找到相关文章