使用 -prefix
-extprefix
和 -hostprefix
选项交叉编译 Qt5 的正确方法是什么?
我的 ARM 板有 sysroot 目录。我对 ARM 交叉编译 Qt 没有任何问题,除了一个问题 - 我不知道如何指定主机上目录的安装路径(不是 sysroot)。 -[..]prefix
的每个组合都会标记尝试在板上安装 Qt。板上磁盘空间不多,所以我想在本地安装Qt。
这是我当前的配置:
./configure -opengl es2 -nomake 测试 -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
我已经读过这篇文章了 topic , Qt docs和谷歌很多。 如果有必要的话,我在主机和目标上都运行 Ubuntu。
最佳答案
安装步骤的目标是extprefix
指定的目录,该目录是可选的,默认为sysroot/prefix
。定义 extprefix 来指向主机中的某个目录应该可以防止污染 sysroot。 hostprefix
允许将 qmake 等主机工具与目标二进制文件分开。指定后,此类工具将安装在指定目录下,而不是 extprefix。
使用这些前缀标志可以保持系统根目录干净,并将设备二进制文件和主机工具分开:
export INSTALLPATH=/home/alan/work/qt/qt_5.5.1_arm_cross_compiled
./configure ... -extprefix $INSTALLPATH/binaries -hostprefix $INSTALLPATH/tools
关于Qt -sysroot、-prefix、-extprefix 和 -hostprefix 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983717/