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