一.安装QT的交叉编译器
在
Ubuntu
虚拟机中创建一个
qt-atk
的文件夹,把正点原子提供的网盘里的最新的交叉编译
工具包拷贝到刚刚创建的目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/36d8d43a4ddae21768d7d153a5603c22.png)
文件较大,拷贝时间较长,请耐心等待。拷贝到
Ubuntu
后,赋予
st-example-image-qtwayland
openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh
可执行权限。
chmod +x st-example-image-qtwayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh
然后执行这个文件就会直接安装,安装过程中会询问安装的目录,我们默认即可,按
Enter
继续。安装耗时较长,请耐心等待。
./st-example-image-qtwayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh
后续有提示
[y/N]
时,我们按回车键,默认安装即可。
安装完成后,安装的交叉编译工具链都会安装在
/opt/
目录下。
ls /opt/st
![](https://i-blog.csdnimg.cn/blog_migrate/92931c95a6ea3984bad5902ac5ff9c9b.png)
关于交叉编译工具的使用:
1.
使能交叉编译器:
在使用交叉编译器前一定要使能环境变量
,在不同终端或者切换用
户时需要
重新使能
环境变量才能使用。
source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
2.
查看生效的环境变量。执行
env
就可以看到当前生效的环境变量。内容很多,这里我
们主要看下环境变量
CC
的值。
env
因为前面我们已经使能交叉编译器的环境变量,所以这里硬浮点参数-mfpu=neon-vfpv4 -
mfloat-abi=hard
,即使用硬浮点交叉编译,可以使用
CPU
自带的
FPU
。
--sysroot=/opt/st/stm32mp1/3.1-snapshot/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi, 这个就是我们刚刚使能的具体的交叉编译器。
3.
查看
gcc
版本。
执行以下指令查看
gcc
版本,这里我们的
gcc
版本是
9.3.0
版本。
arm-ostl-linux-gnueabi-gcc --version
![](https://i-blog.csdnimg.cn/blog_migrate/b699316d76d8014e58d1e48b75a2e0a4.png)
二.编译QT项目(arm)
命令行编译:
1.首先配置交叉编译器的环境,如上文所示
source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
2.编写好qt的工程目录,进入它的目录(拿我编写的qt文件为例)
首先进行qmake,看交叉环境是否配置好。
配置好后,直接对工程进行配置,生成Makefile文件;
qmake 01_led.pro
之后,直接make,就可以生成可执行文件了。
该目录下就会生成可执行文件了
ls
将生成的可执行文件拷贝到板子的/root下面
运行 ./01_led就可以看到qt界面出现了(这个时候没有看到字母或者字符)
三.相关字符库文件的移植
编辑/etc/profile
,在末尾添加以下内容。如下图红色框内。注意要改为个人实际的路径。要
想
Qt
程序显示中文,请自行将
windows
下的(路径
C:\Windows\Fonts
)下的中文字库放到新
建一个
/usr/share/fonts/
目录下就可以了。若例程有使用到字符,会显示找到不字库。注意
Wind
wos 的字库仅为个人学习使用,不要用于商业用途!有版权的!
export QT_QPA_FONTDIR= /usr/share/fonts
重启开发板,之后就可以看到有相应的字符了。
四.移植QT到文件系统
使用下面的指令打包 3.4
小节编译安装好的
arm-qt
文件夹打包成
tar.bz2
格式,打包以防止
文件丢失。
tar -jcf ./arm-qt.tar.bz2 arm-qt
然后使用
U
盘拷贝
arm-qt.tar.bz2
,在
USB
接口插上
U
盘(参考上一小节的方法挂载
U
盘),
手动挂载后,在开发板根文件系统上解压到
/usr/lib/
目录下。如下图,编者已经解压到
/usr/lib
目
录下。
![](https://i-blog.csdnimg.cn/blog_migrate/41e27359da038db9371d96cd17c4210f.png)
配置
Qt5
的环境变量
编辑
/etc/profile
,在末尾添加以下内容
export QT_ROOT=/usr/lib/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FB_TSLIB=1
之后重启开发板。测试qt环境是否配置好。