powerpc Maliit 框架的交叉编译问题

Posted

技术标签:

【中文标题】powerpc Maliit 框架的交叉编译问题【英文标题】:Issue in Cross Compiling for powerpc Maliit framework 【发布时间】:2014-07-28 11:57:23 【问题描述】:

在交叉编译 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。每样东西看起来都不错。如果有人遇到此类问题,请告诉我或分享您的想法,我们如何解决此问题

【问题讨论】:

再次检查你的循环依赖,你的包含等等。不可能给你一个只有这些错误的解决方案。尝试编译尽可能少的文件以检查错误的来源。 【参考方案1】:

我自己解决了这个问题。问题来了,因为 QtDBus 模块没有启用。 要启用 QtDBus 模块,您需要使用 -dbus 运行配置

./configure -embedded arm -xplatform qws/linux-powerpc-g++ -dbus ......

但是在启用之前你应该有 libdbus-1 否则你会得到下面的消息。

无法启用 QtDBus 模块,因为找不到 libdbus-1 版本 0.93。 打开详细消息 (-v) 到 ./configure 以查看最终报告。 如果您认为此消息有误,您可以使用 continue 切换(-继续)到 ./configure 以继续。

为此,您应该下载 dbus-1.2.4.6.tar.gz 和 expat-2.0.1.tar.gz

    交叉编译外籍人士

    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”进行配置

【讨论】:

以上是关于powerpc Maliit 框架的交叉编译问题的主要内容,如果未能解决你的问题,请参考以下文章

powerpc 交叉编译错误

Google 协议缓冲区交叉编译

我可以交叉编译可选择使用 Java 8 中的类但编译为 Java 6 的 Java 代码吗?

mips uclibc 交叉编译ffmpeg,支持 G711A 编解码

mips uclibc 交叉编译ffmpeg,支持 G711A 编解码

mips uclibc 交叉编译ffmpeg,支持 G711A 编解码