完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、搭建Qt ARM开发环境
1.虚拟机64位ubuntu16.04系统下QT的交叉编译,下载安装交叉编译器:aarch64-linux-gnu-gcc
更新软件源和升级更新软件,输入如下指令 sudo apt-get update sudo apt-get upgrade 接下来下载交叉编译工具aarch64-linux-gnu-gcc 查看哪些版本可以安装 sudo apt-cache search aarch64 (因时间等原因,大家的版本号有点差异,接下来的编译器版本号安装,要看清自己系统下有哪个版本编译器就安装对应的即可) 安装一个没有版本号的gcc-aarch64-linux-gnusudo apt-get install gcc-aarch64-linux-gnu 安装一个gcc开头的5版本的支持64bit ARM linux的交叉编译工具 sudo apt-get install gcc-5-aarch64-linux-gnu 安装一个没有版本号的g++编译工具 sudo apt-get install g++-aarch64-linux-gnu 安装4.9版本号的g++编译工具 sudo apt-get install g++-4.9-aarch64-linux-gnu 安装好的编译器目录在/usr/bin 将/usr/bin目录添加到环境变量中,执行以下命令 sudo vi /etc/profile 在末尾添加如下内容: export PATH="/usr/bin:$PATH" 输入命令,让环境变量生效 source /etc/profile 验证是否安装成功,查看里边的版本信息,里边有host是什么,target是什么 aarch64-linux-gnu-gcc -v 如下显示则安装成功 2.下载安装交叉编译qt库:qt-everywhere-src-5.12.1.tar.xz . tar -xvf qt-everywhere-src-5.12.1.tar.xz 解压完成后进入获得的文件夹下 cd /usr/bin/qt-everywhere-src-5.12.1 接着输入命令 sudo vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf 增加以下内容(rk3399是armv8架构) QT_QPA_DEFAULT_PLATFORM = linuxfb QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts 完整版如下: # # qmake configuration for building with aarch64-linux-gnu-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib QT_QPA_DEFAULT_PLATFORM = linuxfb QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = aarch64-linux-gnu-gcc QMAKE_CXX = aarch64-linux-gnu-g++ QMAKE_LINK = aarch64-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = aarch64-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy QMAKE_NM = aarch64-linux-gnu-nm -P QMAKE_STRIP = aarch64-linux-gnu-strip load(qt_config) 保存后接着输入以下命令,仍在/usr/bin/qt-everywhere-src-5.12.1目录下 sudo vi auto.sh 新建的auto.sh为交叉编译自动配置脚本,在其中添加以下内容 #!/bin/sh ./configure -prefix /usr/bin/qt5.12.1-arm -confirm-license -opensource -release -make libs -xplatform linux-aarch64-gnu-g++ -pch -qt-libjpeg -qt-libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-dbus -no-xcb -no-separate-debug-info 修改该文件权限并执行 sudo chmod 777 auto.sh sudo ./auto.sh 编译成功会显示如下结果并生成Makefile文件 接着输入make进行编译,大概需要一个小时 sudo make -j4 编译完成后输入命令 sudo make install 大约一分钟后,可以看见/usr/bin目录下出现了我们指定的安装目录/usr/bin/qt5.12.1-arm,表示ARM Qt库安装成功 3.安装qt-opensource-linux-x64-5.12.0.run 以下为开发板安装qt需要的库: sudo apt-get install libfontconfig1 libfontconfig1-dev sudo apt-get install libxrender-dev libxrender1 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon-x11-dev libxkbcommon0 sudo apt-get install build-essential sudo apt-get install libfreetype6 libfreetype6-dev 接下来安装qt软件 建立安装目录 sudo mkdir /usr/bin/Qt5.12.1 将下载的qt-opensource-linux-x64-5.12.0.run安装在/usr/bin/Qt5.12.1目录下,加上可执行权限后执行 sudo chmod 777 qt-opensource-linux-x64-5.12.0.run ./qt-opensource-linux-x64-5.12.0.run 跳过注册,如果没有skip选项,是因为你的ubuntu联网了,关闭网络后重新运行即可 /usr/bin/Qt5.12.1目录下安装 选择组件,我只选了第一个 其他默认安装即可。 安装完成后找到qt图标拖到ubuntu桌面 4.配置QtCreator 运行qt软件,点击菜单栏的工具->选项->Kits,在编译器栏中的编辑器添加我们前面安装的交叉编译工具,包括aarch64-linux-gnu-gcc与aarch64-linux-gnu-g++ 接着点击Qt versions栏添加qmake,目录为交叉编译后安装的qt库目录 最后在构建套件栏目添加套件,如下图所示,包括名称、设备类型、编译工具、Qt版本等信息,如下图所示 配置完成后套件没有红色感叹号就ok了 二、移植到RK3399 ubuntu16.04系统运行 1.将交叉编译的Qt库复制到板子上 将/usr/bin/qt5.12.1-arm交叉编译Qt库通过u盘复制到rk3399的/usr/bin目录下 接着将qt程序运行所依赖的相关文件、配置等添加到环境变量中 vi /etc/profile 末尾添加: export QTDIR=/usr/bin/qt5.12.1-arm export LD_LIBRARY_PATH=/usr/bin/qt5.12.1-arm/lib:$LD_LIBRARY_PATH export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export QT_QPA_PLATFORM=linuxfb export QT_QPA_FONTDIR=/usr/share/fonts/truetype/ubuntu-font-family 最后一行字体配置可在你的开发板系统上查找有什么字体,自行配置 cd /usr/share/fonts/truetype ls 如果在Firefly开发板上LD_LIBRARY_PATH如此操作可能还是不生效,可以在/etc/environment 末尾添加 vi /etc/environment LD_LIBRARY_PATH=”/usr/bin/qt5.12.1-arm/lib:$LD_LIBRARY_PATH” 然后source /etc/profile或者重启板子让环境变量生效 2.新建qt工程和编译 新建工程的时候注意勾选arm套件,其他和正常操作即可 我的测试程序04_Demo效果是,执行程序后输出open,界面开启后有个close按钮,点击按钮会关闭窗口并输出close 测试程序完成后,点击左下角PC图标,选择arm套件编译 点击左下角锤子构建生成应用(编译不运行,因为这是交叉编译器编译出的qt,不能在linux平台运行,要在arm平台运行),输出框正常,编译完成 生成的可执行程序在你的工程目录下 3.移植qt可执行程序到rk3399运行 将04_Demo可执行程序通过u盘拷贝到rk3399开发板任意目录下,我的是/Work目录 在rk3399开发板的Ubuntu界面下按Ctrl+Alt+F1切换到字符界面(终端界面),找到qt所在路径输入su命令,切换到root权限后执行./04_Demo 运行程序后会弹出界面并打印信息 注:如果在ubuntu界面终端命令行执行Qt程序后可打印信息,不能显示界面,则按Ctrl+Alt+F1切换到字符界面命令行执行,界面就会出来,也不知道为什么 在开发板运行qt程序,界面不出来的问题折磨了我一个多星期终于解决了!!! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【幸狐Omni3576边缘计算套件试用体验】使用rkllm运行DeepSeek的服务模式体验
806 浏览 0 评论
【幸狐Omni3576边缘计算套件试用体验】DeepSeek 部署及测试
2238 浏览 1 评论
【幸狐Omni3576边缘计算套件试用体验】RKNN 推理测试与图像识别
1768 浏览 3 评论
迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-UART应用开发-编写应用测试 APP
662 浏览 0 评论
【幸狐Omni3576边缘计算套件试用体验】安装homeassistant的体验记录
991 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-31 10:32 , Processed in 0.524643 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191