c++ - powerpc Maliit 框架交叉编译问题

标签 c++ c qt cross-compiling

交叉编译 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

  1. 交叉编译 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
    • 制作;
    • 进行安装
  2. 交叉编译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"
    • 制作;
    • 进行安装;
  3. 使用 dbus 交叉编译 Qt

    • 导出 PKG_CONFIG_PATH=/usr/local/dbus/lib/pkgconfig
    • 使用“-dbus”和“-force-pkg-config”进行配置

关于c++ - powerpc Maliit 框架交叉编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24994737/

相关文章:

与 c 中的 c 双维数组输出混淆

C++/多态性/虚函数/为什么我的子类的函数没有被调用?

java - 是否有任何将 CAD 转换为 SVG 的库?

C++11 std::unique_ptr 删除器

c++ - 是否有更适合键值数据结构的 QAbstractItemModel 类型类/接口(interface)?

qt - 如何在Qt中绘制一个 9-patch 按钮?

c++ - GLSL VertexShader 适用于 Qt 但不适用于普通 OpenGL(SL)

c++ - 忽略包含特殊词的字符串(月)

c - MinGW "stdio.h : No such file or directory"

c++ - 在 Windows 10 中运行 gcc 插件时出现问题