交叉编译 Maliit 框架源代码时面临问题。
inputcontextdbusaddress.cpp: In member function 'virtual void Maliit::InputContext::DBus::DynamicAddress::get()':
inputcontextdbusaddress.cpp:50: error: 'QDBusMessage' was not declared in this scope
inputcontextdbusaddress.cpp:50: error: expected ';' before 'message'
inputcontextdbusaddress.cpp:52: error: 'message' was not declared in this scope
inputcontextdbusaddress.cpp:54: error: 'QDBusConnection' has not been declared
inputcontextdbusaddress.cpp: In member function 'void Maliit::InputContext::DBus::DynamicAddress::successCallback(const QDBusVariant&)':
inputcontextdbusaddress.cpp:62: error: invalid use of incomplete type 'const struct QDBusVariant'
inputcontextdbusaddress.h:21: error: forward declaration of 'const struct QDBusVariant'
inputcontextdbusaddress.cpp: In member function 'void Maliit::InputContext::DBus::DynamicAddress::errorCallback(const QDBusError&)':
inputcontextdbusaddress.cpp:67: error: invalid use of incomplete type 'const struct QDBusError'
inputcontextdbusaddress.h:22: error: forward declaration of 'const struct QDBusError'
已经检查循环依赖,它也包括 QDBus。一切看起来都不错。如果有人遇到此类问题,请告诉我或分享您的想法,我们如何解决此问题
最佳答案
我自己已经解决了这个问题。问题出现是因为 QtDBus 模块未启用。 要启用 QtDBus 模块,您需要使用 -dbus 运行配置
./configure -embedded arm -xplatform qws/linux-powerpc-g++ -dbus ......
但在启用之前,您应该拥有 libdbus-1,否则您将收到以下消息。
无法启用 QtDBus 模块,因为未找到 libdbus-1 版本 0.93。 打开 ./configure 的详细消息传递 (-v) 以查看最终报告。 如果您认为此消息有误,您可以使用继续 切换(-继续)到 ./configure 以继续。
为此,您应该下载 dbus-1.2.4.6.tar.gz 和 expat-2.0.1.tar.gz
交叉编译 expat
- tar zxvf expat-2.0.1.tar.gz
- cd expat-2.0.1/
- ./configure --host=powerpc-linux --prefix=/usr/local/expat/CC=powerpc-linux-gcc
- 制作;
- 进行安装
交叉编译dbus
- tar zxvf dbus-1.2.24.tar.gz
- cd dbus-1.2.24
- ./configure --prefix=/usr/local/dbus/--host=powerpc-linux --with-x=no ac_cv_have_abstract_sockets=yes "CC=powerpc-linux-gcc -I/usr/local/expat/include -L/usr/local/expat/lib"
- 制作;
- 进行安装;
使用 dbus 交叉编译 Qt
- 导出 PKG_CONFIG_PATH=/usr/local/dbus/lib/pkgconfig
- 使用“-dbus”和“-force-pkg-config”进行配置
关于c++ - powerpc Maliit 框架交叉编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24994737/