交叉编译:在系统A中编译出在要系统B中运行的环境、程序。

编译工具:x9-gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf

1、将编译工具拷贝到 /opt 文件夹。

2、下载Qt源代码,解压。

3、进入解压后的 /qtbase/mkspecs 文件夹,这是编译配置的文件夹,发现没有名称为gnueabihf的,新建一个文件夹,名称为 linux-arm-gnueabihf-g++,到其他文件夹拷贝 qmake.conf、qplatformdefs.h 这两个文件文件到此文件夹(mkspecs文件夹的子文件夹都有这两个文件,随便找一个文件夹拷贝过来就行)。

4、修改 qmake.conf 中的配置:

5、调起X9交叉编译链,执行:

source /opt/x9-gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/setpath.sh

6、开始编译,执行:

./configure -release -opensource -confirm-license -xplatform linux-arm-gnueabihf-g++ -prefix /usr/local/qt5.12.2_jcby -nomake examples -no-opengl -silent -qpa linuxfb

其中的路径是生编译出来的内容存放的路径。

执行make、make install。整个过程大概两个小时。

7、编译完成之后配置 Qt Creator :

8、用这个构建套件在 release 模式生成一个测试程序。这个程序在当前系统是运行不起来的。

9、将编译出来的环境打个压缩包拷贝到 arm 开发板的 linux 系统,找个文件夹存放然后解压缩。

10、添加环境变量:

export PATH=/data/qt5122/qt5.12.2_jcby/bin:$PATH
export LD_LIBRARY_PATH=/data/qt5122/qt5.12.2_jcby/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/data/qt5122/qt5.12.2_jcby/plugins/

11、把测试程序也拷贝过来,添加运行的权限然后运行,提示这个:

QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QFontDatabase: Cannot find font directory /usr/local/qt5.12.2_jcby/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.
QFontDatabase: Cannot find font directory /usr/local/qt5.12.2_jcby/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.
QFontDatabase: Cannot find font directory /usr/local/qt5.12.2_jcby/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.
QFontDatabase: Cannot find font directory /usr/local/qt5.12.2_jcby/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.
QFontDatabase: Cannot find font directory /usr/local/qt5.12.2_jcby/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.

缺少字体数据库。去qt安装目录搜一下,找一个 *.ttf 字库文件。

复制到开发板里面qt环境的目录 /lib/fonts,没有这个文件夹就建一个。

把环境变量加上:

export QT_QPA_FONTDIR=/data/qt5122/qt5.12.2_jcby/lib/fonts

程序即可运行。如图🤩: 

Logo

更多推荐