【问题标题】:Compile Qt for Beaglebone Black为 Beaglebone Black 编译 Qt
【发布时间】:2014-09-10 10:41:50
【问题描述】:

我想从源代码为 Beaglebone Black 编译 Qt

我有以下:

  1. 交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9-2014.06_linux
  2. qt-everywhere-opensource-src-5.3.1。

我的主机操作系统是 Scientific Linux 6.3 32 位。 我的问题是我不知道需要将哪些参数传递给 ./confiure 工具。 我有以下线索:

  1. -xplatform = qtbase/mkspecs/linux-arm-gnueabi-g++
  2. -device = qtbase/mkspecs/devices/linux-beagleboard-g++
  3. -device-option CROSS_COMPILE=/home/anjanu/Downloads/gcc-linaro-arm-linux-gnueabihf-4.9-2014.06_linux/bin/arm-linux-gnueabihf-g++

这是正确的吗?需要传递给 ./configure 的所有内容以及 sysroot 选项的用途是什么?

【问题讨论】:

  • 所以这应该是 Qt 根文件夹的完整路径。但是在安装 Qt 之前我怎么知道这条路径???
  • 看看一些已经发布 Qt5 的嵌入式 Linux 发行版,例如 Buildroot

标签: c++ qt arm cross-compiling beagleboneblack


【解决方案1】:

基本上,这本身就足够了:

-xplatform = qtbase/mkspecs/linux-arm-gnueabi-g++

其余的几乎都是红鲱鱼......

即使工具链二进制文件使用它们的长名称正确命名,例如arm-linux-gnueabi-g++,包含和库路径可能与系统包含和库路径冲突。这正是 sysroot 所要处理的。

您可以将其设置为跨工具链安装的 PATH。不,这不是 Qt 安装。它是您可能从 Linaro 获得的 SDK,包括用于跨平台开发的整个 SDK。即编译器、链接器、剥离器、包含文件、库等等。

【讨论】: