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

标签 qt cross-compiling qmake

使用 -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/

相关文章:

c++ - Qt 类型作为函数的参数

qt - 为 Pandaboard 交叉编译 Qt

qt - qmake 处理我的配置文件三次而不是一次

c++ - QtCreator在Linux上找不到lastfm库文件liblastfm.so.1

linux - Qt Hello World 教程不起作用

c++ - Qt - 使用由按钮控制的线程的简单示例

android - 配置文件如何找到正确的交叉编译工具?

linux - 交叉编译pycurl-7.19.5.1

linux - qmake 在 linux 上使用不正确的 Qt 安装路径

c++ - 正确构建和销毁 Setter 依赖注入(inject)对象(可能使用 qt)