目录
1. 安装交叉编译器
2. 命令行交叉编译QT项目
3. 运行该可执行程序
4. 开发板上运行UDP程序与Ubuntu通信
1. 安装交叉编译器
第一步:进入正点原子论坛找到IMX6ULL开发板的资料,下载“开发工具”,将“交叉编译工具”中的fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh传输到Ubuntu中。
第二步:将其添加可执行权限,之后运行它。
第三步:每次编译都需要执行下列代码,使能环境变量。之后可以输入qmake -v来查看是否成功,成功的话会显示QMake的版本。
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
2. 命令行交叉编译QT项目
第一步:找到QT项目的目录。
第二步:命令行输入qmake xxx.pro。会在QT项目的目录中生成Makefile和.qmake.stash文件。
第三步:命令行中输入"make"即可编译。为了加快编译速度,可以使用多线程来编译,即命令"make - j 2" 其中2为虚拟机最大的内核数量。编译完成后,能够发现可执行文件,如下图所示。
第四步:将该可执行文件传输至开发板上。传输方法一:开发板挂载Ubuntu的nfs目录,详见【嵌入式Linux笔记】第二篇:环境搭建 & IMX6ULL开发板。传输方法二:通过U盘拷贝至开发板,U盘在Linux中的文件目录一般为/media/alientek/。
3. 运行该可执行程序
第一步:出现以下错误:
这里发现百问网的IMX6ULL_PRO开发板在运行QT项目时出现问题!!!
解决方法:在开发板的命令行中配置环境变量export QT_QPA_PLATFORM=linuxfb,之后就能显示了。
第二步:尽管界面能够显示,但是仍然报错并且触摸屏点击无效:
- 解决上面一行错误:配置环境变量export XDG_RUNTIME_DIR=/var/run/
- 下面是键盘库没有,由于我们开发板不用键盘,因此这里忽略。
- 解决屏幕点击无效:配置环境变量export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
总结:出现以上错误皆是因为环境变量没有配置好,并且每次开机后都需要配置。因此,我们做一个一劳永逸的方法,即修改开发板的配置文件/etc/profile,执行vi /etc/profile,将如下代码写入文件中:
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_PLATFORM=linuxfb
export XDG_RUNTIME_DIR=/var/run/
4. 开发板上运行UDP程序与Ubuntu通信
【1】代码来源:【QT5】<总览五> QT多线程、TCP/UDP中的单播程序。
【2】运行效果: