【米尔-NXP iMX9系列开发板试用评测】3、QT交叉编译与发布
本帖最后由 eefocus_3914144 于 2024-6-19 12:33 编辑【分享目的】
前面我进行了SDK的安装、QT的安装,接下来将进行QT的交叉编译工具的配置,编译示例工程,并示例如何部署到开发板。
【资料】
1、《MYD-LMX9X\_Linux软件开发指南.pdf》
2、《MYD-LMX9X\_Linux软件评估指南.pdf》
3、《MYD-LMX9X QT开发指南.pdf》
以上三篇资料主要是介绍如何配置RGB显示屏、SDK的配置、QT的安装与交叉工具配置。
【实现步骤】一、配置交叉编译工具
1、打开QT工程示例下面的clocks示例工程
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/115719nee87gcesg8g8z7z.png)
2、打开Projects进入工程配置:
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/115833ihybhvy4vbhgkkvv.png)
3、添加一个用户自定义的GCC编译器,Add->GCC->C
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/115953l9ftpmedtti3f7z3.png)
在然后找到目录为如下图所示,点击open
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120133msqlnqkr1nfpc1zq.png)
4、添加G++ Add->GCC->C++
在下图的目录中找到g++
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120326hszbbvummv8i1hhy.png)
5、如果需要远程调试,添加gdb,如下图所示:
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120440vxwcmm2emeuheflp.png)
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120500q1nu2j693ajal9zu.png)
【注】如不需要远程调试,此步可跳过,不过会有警告
6、添加Qt Versions,如下图所示,打开后,点击Add,找到如下图所示的目录,选择qmake
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120703bvvdei7dhyqyump1.png)
然后在Name下面填:Qt %{Qt:Version} (LM93-sytem)
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/120812fs8pwk8dccppwp5y.png)
7、增加kit。增加Name:LM93-dev-kit, compiler中的C及C++在下拉那里选择我们刚添加好的编译器,sysrool为:/home/myir/lmx9x/sysroots/x86_64-pokysdk-linux,Qt Versions为我们刚添加好的。Qt mkspec为:linux-oe-g++,其他的保存默认,点击Apply后再点击OK。
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/121254wf8f8pb1f3x74x1b.png)
8,这样我们在debug下面就可以看到Kit有LM93-dev-kit了。
具体的大家可以看QT的开发教程。
到此交叉编辑工具就设置好了。
二、编译工程
1、点击编译后,我们查看Compile Output的信息框,如果没有错误说明就编译成功。
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/121634ojc3254r439krkri.png)
在该工程上期下面有个build文件夹
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/121729fn33tz9n3u7730os.png)
在该文件夹下面有Debug文件夹,下面就有我们编译后的可执行文件:
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/121817v1j1ybuj1gkrj9u8.png)
使用file 查看,见为ARM aarch64,说明编译成功。
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/121942ynk7667pd6657yrd.png)
三、部署
1、把clocks上传到开发板的home目录下面。
修改他的权限为可执行。
如果我们直接执行会报错如下:
```
root@myd-lmx9x:/home# ./clocks
QML debugging is enabled. Only use this in a safe environment.
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, but has failed to switch to one.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
Failed to create wl_display (No such file or directory)
qt.qpa.plugin: Co[ 4728.512435] audit: type=1701 audit(1718770897.184:22): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=890 comm="clocks" exe="/home/clocks" sig=6 res=1
uld not load the Qt platform plugin "wayland" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, linuxfb, minimal, wayland, vnc, offscreen.
Aborted
```
经过米尔的技术支持,我们需要配置一下运行环境。在/usr/sbin/目录下新建一个shell文件
```
export QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
export QTWEBENGINE_DISABLE_SANDBOX=1
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
export WAYLAND_DISPLAY=/run/wayland-0
export XDG_RUNTIME_DIR=/run/user/0
exportQT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:offset=0x0
```
保存后执行这个.sh文件,就可以顺利的看到桌面程序了。
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/122521od7d9n2d8q787v1d.png)
!(//m.qjumbo.com/forum/data/attachment/forum/202406/19/122547ruivn5vwrqwgrg9q.png)
【总结】
配置QT的交叉编程工具需要仔细的阅读文档。在开发板运行时,需要配置运行环境。
页:
[1]