系列文章目录
QT交叉编译
命令行编译
安装好的poky交叉编译工具链,每次在不同的终端命令窗或者切换用户时要重新使能环境变量。
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
QT安装
先去官网找社区版的QT进行下载安装,下载Linux版本的
下载好之后,
在安装包目录下,使用下面命令,将使用镜像下载,否则正常安装十几个小时都装不完,很慢
.\qt-unified-windows-x64-4.6.0-online.exe --mirror https://mirrors.ustc.edu.cn/qtproject
之后就按照社区版的安装过程进行就行了。
QT交叉编译器搭建
配置 Qt Creator Kits,在安装目录下有个qtcreator.sh文件,用sudo vi打开
在文件第二行添加交叉编译环境,之前安装过的,在脚本里写入设置使能环境变量的指令
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
之后打开QT,在编辑下面的preference设置,分别设置Qt版本、编译器,最后绑定到Kits
然后就能用我们设置的kits编译了,编译后在debug文件夹下有输出文件,后续移到开发板进行测试,拷贝到出厂文件系统目录下,在串口终端直接执行./xxxxx就可以了
ARM交叉编译的肯定在ubuntu上跑不了,可以用自带的desktop套件编译看看效果,编译出错是环境搭建有问题,用下面指令进行安装就好
sudo apt install libgl1-mesa-dev
下载到开发板
我用U盘拷贝到文件系统目录下后,运行时发现会报错
QStandardPaths: XDG_RUNTIME_DIR points to non-existing path '/path/to/your/runtime-dir’
网上说XDG_RUNTIME_DIR 是一个环境变量,用于指定非持久性运行时文件(如套接字和管道)的存储目录。如果没有设置,这些文件可能会被存储在默认的临时文件系统位置
在开发板上的ect/profile文件里面,用vi打开,添加
export XDG_RUNTIME_DIR=/path/to/your/runtime-dir
之后,还是报错,后来我干脆创建了这个目录文件,后面就可以正常跑了
QT串口上位机
移植了一个windows写的QT上位机,刚开始发现串口老打开失败,后面装了cutecom上位机,想看看啥情况,发现需要给串口权限:
//安装cutecon
sudo apt update
sudo apt install cutecom
//确认当前用户是否在 dialout 组中
groups
//如果未显示 dialout,执行以下命令
sudo usermod -aG dialout $USER
//串口设备通常显示为 /dev/ttyUSB0 或 /dev/ttyS0 等。使用以下命令查看可用的串口
ls /dev/tty*
之后注销重新登录就行了
开发板上位机
用u盘将编译后的文件拷贝到开发板上
跑了一个以前做的QT上位机,波形啥的都能显示,串口接收也没问题。后续需要加个虚拟键盘和接收缓冲区自动清空的功能,暂时不能输入,运行久了会卡。
运行:./xxxxx 执行文件,crtl+Z是退出进程