完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
准备:
1> QT5.5.1源码包(如果你是其他QT版本请下载其他版本的源码包) 不知道为什么,QT官网的源码包目前没有QT5.5.1 2> 安装交叉编译链 搞清楚开发板支持的交叉编译链 这里我使用的 是aarch64-linux-gnu,安装比较简单 直接在终端输入: sudo apt-get install gcc-aarch64-linux-gnu sudo apt-get install g++-aarch64-linux-gnu 即可安装 安装完成检验编译工具是否可用:aarch64-linux-gnu-g++ -v 注意虚拟机在安装完成后可能需要重启一下 如果返回信息为: 说明安装成功 交叉编译Qt库 .tar.gz格式的解压命令为: tar -xzvf qt-everywhere-opensource-src-5.5.1.tar.gz .tar.xz格式的解压命令为: tar -xvf qt-everywhere-opensource-src-5.5.1.tar.xz 解压完成后会在你保存安装包路径下生成源码包文件夹: 然后编辑qmake.conf文件,这一步比较关键: 由于5.5.1源码包里面没有我们使用的aarch64-linux-gnu文件夹,所以需要改其他的支持的编译工具配置文件,或者是新创建一个(理论上是可以的,但是没有实验) 在 你自己的路径/qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/ 有很多配置文件: 找到 文件夹linux-arm-gnueabi-g++/ 进入打开qmake.conf 或者直接 sudo gedit 自己的路径/qt-everywhere-opensource-src-5.9.4/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 文件内容如下: 首先修改文件内容,加入代码: QT_QPA_DEFAULT_PLATFORM = linuxfb QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts 如果你的编译工具是arm-linux-guneabi-g++/gcc,以下修改步骤可以不进行 修改编译工具为aarch64-linux-gnu-g++(或者你自己使用的编译工具) 修改后的代码为: # # qmake configuration for building with arm-linux-gnueabi-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) 保存后,然后在 /qt-everywhere-opensource-src-5.5.1文件夹下创建一个脚本文件, sudo gedit auto.sh 并添加以下内容: #!/bin/sh ./configure -prefix /opt/qt5.5.1-arm -confirm-license -opensource -release -make libs -xplatform linux-arm-gnueabi-g++ -pch -qt-libjpeg -qt-libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-dbus -no-separate-debug-info 注意: -prefix /opt/qt5.5.1-arm 这里是编译后的安装目录,编译完成后会在对应目录上创建qt5.5.1-arm文件夹,此路径和文件名/opt/qt5.5.1-arm可以自定义 -xplatform linux-arm-gnueabi-g++ 为交叉编译相关选择,因为我们在上一步修改了linux-arm-gnueabi-g++的qmake.conf文件,因此要指定为linux-arm-gnueabi-g++,如果你配置的是其他文件夹下的qmake.conf文件,要指定其他的文件夹/ 修改该auto.sh文件权限并执行 sudo chmod u+x auto.sh ./auto.sh 执行成功后会显示 之后输入 sudo make 会执行一个比较长的时间,如果你的电脑比较强大,可以使用sudo make -j8 -j后面的数字表示同时执行的线程数,不建议这样,这样报错的信息不好定位 make报错解决: 我在make过程中遇到: 解决方法: 修改/qt-everywhere-opensource-src-5.5.1/qtimageformats/src/3rdparty/libwebp/src/dsp/dsp.h 将#define WEBP_USE_NEON 注释掉 完成之后,再输入 sudo make install make install 报错解决: 有可能你在make的时候没有出问题,在make install的时候出现了关于VP8DspInit函数的报错,其解决方法同上面一样,注释#define WEBP_USE_NEON,之后重新 make install 执行成功后,可以看见auto.sh 中 -prefix 指定的目录下出现了我们指定的安装目录/opt/qt5.5.1-arm,表示安装成功。 交叉编译QT程序 使用命令行完成编译,迅速快捷。 在你QT程序的目录下新建一个build文件夹,并进入。 mkdir build cd build 在build目录终端下,设置Qmake的环境变量。 export PATH=/opt/qt5.5.1-arm/bin:$PATH 这个qt5.5.1-arm就是刚刚我们make install 生成的编译目录 接着执行 qmake .. 注意,要忘记qmake后面的 .. 之后执行 make make编译完成后会在build目录下生成一个可执行qt_xt_demo 这就是我们要在开发板运行的可执行文件了 使用Xshell传输数据到开发板 将qt_xt_demo先从虚拟机中移动到windows端,使用Xshell工具利用串口连接到Rk开发板,其波特率一般为115200。 首先打开Xshall,选择新建 如果你要使用串口进行通信,协议选择SERIAL。 选择左侧菜单栏的 串口 选项,之后选择正确的端口号一般是COM3 或者 COM4 连入开发板之后,使用账号和密码进行登录。 在Xshell中,使用sudo rz -e 选择文件进行传输。 将编译的可执行文件传输到开发板指定的文件夹下 给它赋权限:sudo chmod 777 qt_xt_demo 设置桌面快捷方式实现双击打开QT程序 在开发板环境中,你需要执行 sudo qt_xt_demo才能运行程序,显示你的界面,一个完整的产品肯定不能这样执行,我们需要在桌面设置一个类似链接的东西,通过双击他来执行一个脚本,实现程序运行,打开。 首先我们写一个非常简单的脚本,创建文件run.sh,加入内容 #!/bin/bashsudo /myqt/qt_xt_demo #注意:这里的路径需要改成自己的 给这个脚本文件加入权限 chmod u+x run.sh 之后,我再用Xshell上传一个你想要作为图标的图片,不要太大 例如,我上传了一个名为 1.png的图片再开发板里的myqt目录下 之后我们再写一个时间的的桌面配置文件:在开发板桌面目录下,创建文件 mytest.desktop,添加内容为 [Desktop Entry]Type=ApplicationExec=/myqt/run.shName=你想要这个软件的命名 GenericName=你想要这个图标的命名Icon=图标路径Terminal=falseCategories=Development; 同样给这文件赋权限 chmod u+x mytest.desktop 之后,双击桌面图片,就可以打开软件了! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1749 浏览 0 评论
1886 浏览 1 评论
1562 浏览 1 评论
2902 浏览 1 评论
3930 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-8 03:05 , Processed in 0.837240 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号