Qt -sysroot、-prefix、-extprefix 和 -hostprefix 选项

Qt -sysroot, -prefix, -extprefix and -hostprefix options

使用-prefix-extprefix-hostprefix选项交叉编译Qt5的正确方法是什么? 我的手臂板有 sysroot 目录。我对 ARM 的 Qt 交叉编译没有任何问题,除了一个 - 我无法弄清楚如何指定主机上目录的安装路径(不是 whitin sysroot)。 -[..]prefix 标志的每个组合都试图在板上安装 Qt。板子上没有多少磁盘space,所以我想在本地安装Qt。

这是我当前的配置: ./configure -opengl es2 -nomake tests -no-libjpeg -skip qtwebkit -skip qtwebkit-examples -no-xcb -device linux-jetson-tk1-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -sysroot /mnt/jetson_tk1_sysroot -hostprefix /home/alan/work/qt/qt_5.5.1_arm_cross_compiled -make libs -debug -v

我已经阅读了这篇 SO topic, Qt docs 和 google 很多。 如果重要的话,我在主机和目标上都是 运行 Ubuntu。

安装步骤以 extprefix 指定的目录为目标,这是可选的,默认为 sysroot/prefix。定义 extprefix 以指向主机中的某个目录应该可以防止您污染您的 sysroot。 hostprefix 允许将 qmake 等主机工具与目标二进制文件分开。给定后,此类工具将安装在指定目录下,而不是 extprefix。

使用这些前缀标志可以保持您的 sysroot 干净并分离设备二进制文件和主机工具:

export INSTALLPATH=/home/alan/work/qt/qt_5.5.1_arm_cross_compiled
./configure ... -extprefix $INSTALLPATH/binaries -hostprefix $INSTALLPATH/tools