Linux Ubuntu 搭建Qt RK3399(ARMv8)编译 运行 调试环境
1、主机交叉QMake生成
已验证的环境:Ubuntu18.04 + Qt5.12.1
Qt5.12.1 :
, 下载前置软件包:
gcc-aarch64-linux-gnusudo, g++-aarch64-linux-gnu : ARM64的C与C++的交叉编译器
sudo apt install gcc-aarch64-linux-gnusudo g++-aarch64-linux-gnu
模板:
执行configure(qt-everywhere-src-5.12.1/configure),生成Makefile
编译&安装
sudo make && make install
/!\ 路径英文,su权限
主要对象qmake生成:
2、主机QtCreator配置
使用官网的.run文件或apt来安装,使用同一版本号,或相近版本号,若有问题则遍历其他版本更换
2.1 指定gcc与g++:指定apt安装的编译工具
2.2 指定qmake:指定编译好的qmake(编译好的路径下/bin/qmake)
3、目标机运行环境
3.1 安装Qt运行环境
apt安装 (待验证)
apt install qt5-default
3.2 配置通过ssh运行X图形软件
【1】 编辑 /etc/ssh/sshd_config
启用AllowTcpForwarding
启用X11Forwarding
将X11DisplayOffset设定为10
启用X11UseLocalHost
【2】 配置环境变量 /etc/profile
export DISPLAY=":0.0"
export XAUTHORITY="/home/用户名/.Xauthority"
3.3 Qt配置目标机设备
建议root登录,免得各种权限拒绝
4、GDB调试
4.1目标机安装gdbserver(选择源码编译或下载现成的)
4.1.1:获得GDB Server
方法一:GDB源码安装(
),只编译GDBServer方法二:下载现成的 GDB8.1版本
链接:https://pan.baidu.com/s/1N_xc6chaKxy3_Mn64XwDmA
提取码:16se
4.1.2 安装GDB
把文件夹bin里的文件放到/usr/bin,并作软连接gdbserver(指向aarch64-linux-gnu-gdbserver): ln -d aarch64-linux-gnu-gdbserver gdbserver
文件夹lib里文件放到/usr/lib
4.2 目标机设置允许root登录
sudo service sshd restart 重启服务
4.3 主机安装gdb-multiarch
sudo apt install gdb-multiarch,并在Qt中指定
4.4 配置运行变量
上述两个目标板子上的环境变量 DISPLAY 和 XAUTHORITY,板子一般是没有的,要自己添加上去,否则运行不起来
或者直接手动在Qt里面添加固定的,这样就不用每次启动去获取板子的系统变量了:
通过/etc/profile 加入 export来添加
正确调试图:
过程笔记
1、Deepin(深度) Qt5.12.1 执行configure 会报 ERROR: C++11 <random> is required and is missing or failed to compile,没有找到有效方法
2、Qt5.14.2:执行configure时,大多指令都变得不可使用(如-prefix -xplatform等)
3、Qt5.14.1、Qt5.14.0、Qt5.15.0:执行make时报openglextension找不到模块的错误,无法继续
4、PC环境提示 GL/gl.h:No such file. : apt install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
5、错误提示 /usr/lib/qt5.12.1-arm64/lib/libQt5Core.so: undefined reference to `getentropy@GLIBC_2.25' : glibc的库版本不对,要安装 glibc >>>
指定的编译工具与安装时指定的编译工具不一致
6、运行时缺少l ibqt5serialport 库:使用apt search libqt5serialport 找到具体的安装包,并安装
<<<