当前位置: 首页 > wzjs >正文

佛山网站建设永网上海平台公司

佛山网站建设永网,上海平台公司,二次元网站开发的意义,健康管理 网站建设Docker下ARM64架构的源码编译Qt5.15.1,并移植到开发板上 1、环境介绍 QT版本:5.15.1 待移植环境: jetson nano 系列开发板 aarch64架构(arm64) 编译环境: 虚拟机Ubuntu18.04(x86_64) 2、…

Docker下ARM64架构的源码编译Qt5.15.1,并移植到开发板上

1、环境介绍

QT版本:5.15.1

待移植环境

jetson nano 系列开发板

aarch64架构(arm64)

编译环境

虚拟机Ubuntu18.04(x86_64)

2、简介

我们在Windows上完成Qt项目的开发后,一般来说需要将项目移到开发板中运行。但是开发板中没有安装或者安装QT的版本过低,所以需要我们进行重新安装。如果对Qt版本没有具体要求的话可以直接apt安装,看这个教程 apt install 直接安装Qt。有具体版本要求的话就需要去官网下载对应版本的源代码进行手动编译。

2、1 实现方法

编译方法我知道的有三种:

  • 直接在开发板上进行编译
  • 在虚拟机Ubuntu系统上进行交叉编译
  • 在docker容器中进行编译

开发板上编译看这个博主:ARM开发板编译Qt

虚拟机Ubuntu交叉编译看这个博主:虚拟机交叉编译

我主要介绍在docker容器中进行编译。

3、准备工作

3.1、虚拟机安装Ubuntu(x86)

没有安装的网上教程很多

3.2、Ubuntu安装docekr

默认已安装

3.3、docker拉取arm64的ubuntu镜像

3.3.1、开启manifest

使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如x86_64 架构的系统中只能使用x86_64的镜像创建容器。docker manifest特性可支持用户在不同系统架构的机器上分别运行不同的架构的镜像。这一点基本不需要用户做任何适配,非常的方便。

1、编辑配置文件(没有就直接新建)

mkdir /root/.docker
cd /root/.docker
vim config.json

2、将以下内容添加进去

{"auth": {},"experimental": "enabled"   
}
3.3.2、添加加速源

1、编辑文件(没有则新建)

vim /etc/docker/daemon.json			

2、将以下内容添加

{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"],"experimental": true 
}

registry-mirrors : 添加阿里云加速源,也可以直接 [ ];

experimental : 开启实验功能;

3.3.3、重新加载服务配置文件并重启docker
#重新加载服务的配置文件
systemctl daemon-reload#重启docker
systemctl restart docker
3.3.4、拉取arm64的Ubuntu镜像
# 安装 qemu-user-static来确保x86_64的主机支持arm64的镜像
sudo apt-get update
sudo apt-get install qemu-user-static binfmt-support
sudo docker pull arm64v8/ubuntu:18.04# 启动并进行文件映射,主机的文件中原来存放我们后面要下载的文件等
sudo docker run -it -v ~/host_data:/container_data arm64v8/ubuntu:18.04 bash

注意这个ubuntu系统是最精简的,你需要install各种你需要的包,以及编译Qt所需要的依赖

4、交叉编译Qt

4.1、下载源代码

Qt码源头下载地址

交叉编译器下载地址

4.2、安装交叉编译工具

将交叉编译工具压缩包gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar拷贝到虚拟机目录下

解压

tar -xvf xxxxx

然后交叉编译器添加到环境变量中

vim /etc/profile
#将下面的内容添加到最后一行
export PATH=SPATH: /usr/local/arm/gcc-linaro-6.3.1-2017.02-x86 64 aarch64-linux-gnu/bin/   # 这个路径改为自己的
保存并退出
source /etc/profile

4.3、修改qmake.conf文件

将下载的Qt源码移动到虚拟机中自己新建的文件夹中,我新建的Qt源码存放路径为/home/nvidia/ldy/qt-everywhere-src-5.15.1。不同的硬件架构对应不同的qmake.conf,在下载的Qt5.12.11源码中的qtbase/mkspecs/目录下有各种不同的平台,arm64对应的文件为linux-aarch64-gnu-g++目录下的qmake.conf文件。我们需要对这个文件进行修改编辑。

修改大概为这个样子(不要直接复制):

#
# qmake configuration for building with aarch64-linux-gnu-g++
#MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM=linuxfb   # 这里改成这样
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -ltsinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf   修改这4个路径,对应你自己的路径改
QMAKE_CC                =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX               =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK              =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++# modifications to linux.conf  修改这4个路径,对应你自己的路径改
QMAKE_AR                =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM                =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP             =/usr/local/arm/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)

可以参考进行配置

4.4、配置Qt编译选项

我们先进入qt源代码的目录下,然后创建一个脚本文件用来进行configure。

sudo vim auto.sh
# 然后将下面的内容复制到里面(根据自己的需要对配置进行修改)
./configure -prefix /opt/qt5.15.1-new \   # 编译后Qt的安装目录,复制请删除注释-opensource -confirm-license \-release \-strip \-shared \-optimized-qmake \-c++std c++11 \--rpath=no \-pch \-skip qt3d \  # 跳过一些不必要的库,复制请删除注释-skip qtactiveqt \-skip qtandroidextras \-skip qtcanvas3d \-skip qtwayland \-skip qtgamepad \-skip qtlocation \-skip qtmacextras \-skip qtpurchasing \-skip qtsvg \-skip qttranslations \-skip qtwebengine \-skip qtwinextras \-skip qtxmlpatterns \-make libs \-nomake tools -nomake tests \-gui \-widgets \-dbus-runtime \-no-openssl \--freetype=system \  # 这里我之前配置的=qt,结果后面运行时出现了字体的错误,复制请删除注释--harfbuzz=qt \-opengl desktop \  # 启用 OpenGL 支持,复制请删除注释-xcb \  # 启用 xcb 支持--xcb-xlib \  # 启用 xcb-xlib 支持,复制请删除注释--libpng=qt \--libjpeg=qt \--sqlite=qt \-plugin-sql-sqlite \-recheck-all

保存并退出,赋予最高权限

sudo chmod 777 auto.sh	

4.5、开始编译

开始编译之前需要,安装一些必要的依赖,这里自行安装。

sudo ./auto.sh
sudo make -j8
sudo make install

时间可能有点长,耐心等待(1-2个小时,不同设备可能不同)

4.6、移植Qt到目标开发板

编译好了以后我们可以在这个目录/opt/qt5.15.1-new,看到编译好的Qt。

然后将这个编译好的Qt复制到目标开发板中,然后进行环境变量配置

sudo vim ~/.bashrc
# 然后将下面的内容填入(根据自己的路径进行修改)
# arm64 qt
# qt path config
export PATH=/opt/qt5.15.1-new/bin:$PATH
export LD_LIBRARY_PATH=/opt/qt5.15.1-new/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/qt5.15.1-new/plugins/platforms
export QT_QPA_FONTDIR=/opt/qt5.15.1-new/lib/fonts#保存并退出
source ~/.bashrc

4.7、验证Qt是否安装成功

qmake -version
#输出:
QMake version 3.1
Using Qt version 5.15.1 in /opt/qt5.15.1-new/lib

文章转载自:

http://kEdZhvSS.rdkqt.cn
http://57ODlDW3.rdkqt.cn
http://H7229BPG.rdkqt.cn
http://o9QOscyg.rdkqt.cn
http://jqz6c1l4.rdkqt.cn
http://LhiaUrUp.rdkqt.cn
http://Tjx2qtkw.rdkqt.cn
http://QJeniaG1.rdkqt.cn
http://MFGdMbMc.rdkqt.cn
http://3bIzFR23.rdkqt.cn
http://ZXX0R9gz.rdkqt.cn
http://aCMPDGD5.rdkqt.cn
http://qziyW2c3.rdkqt.cn
http://O4G3RzJT.rdkqt.cn
http://fNGik2Ph.rdkqt.cn
http://srCAjmK1.rdkqt.cn
http://YmiX95tW.rdkqt.cn
http://IgWQM4q2.rdkqt.cn
http://YoUla6Hw.rdkqt.cn
http://JJwsBodd.rdkqt.cn
http://RIjzFe3L.rdkqt.cn
http://3nLOhiKu.rdkqt.cn
http://q9tKngKp.rdkqt.cn
http://Fe0YNtxs.rdkqt.cn
http://zu0k6ZMW.rdkqt.cn
http://7apIiVV7.rdkqt.cn
http://BUmkFTTp.rdkqt.cn
http://aYQXcbce.rdkqt.cn
http://o243GyKn.rdkqt.cn
http://g6Ycpdok.rdkqt.cn
http://www.dtcms.com/wzjs/715650.html

相关文章:

  • 通信工程企业网站建设杭州网站建设哪个好
  • 永久免费wap建站百度热议怎么上首页
  • 上海沙龙网站建设wordpress自定义帖子链接
  • 如何建设一个国外网站韩语网站建设
  • 百度联盟怎么做自己的网站织梦网站英文版怎么做
  • 给别人做非法网站能判多久网站建设博敏
  • 可以自己做歌曲的网站为什么网站 关键词策划
  • 唐山企业网站建设美食类网站开发说明书
  • 网站的步骤做网页需要什么
  • 十大免费建站程序wordpress李家沱网站建设
  • 合肥市高端网站建设自建网站过程
  • 建网站的系统网站设计思路方案
  • 做网站搜索排名上海龙华医院的网站建设
  • 学校专业群建设专题网站海口网站建设策划
  • 成都比较好的网站建设公司vr全景网站开发
  • 河南网站建设公司排名南山做网站行业
  • 做企业网站大概多少钱石家庄建站源码
  • 北京企业网站制作哪家好查看网站流量
  • 做理财网站wordpress 除了
  • 成都隆昌网站建设html网页模板下载html模板免费
  • 南通网站建设计划书搜索引擎大全排名
  • 旅游营销型网站建设wordpress 微博文章
  • seo网站建设规划个人做网站郊游的英
  • 能看男女做那个的网站wordpress搜索引擎
  • 1元建站创意设计英文翻译
  • 即时通讯网站开发源码seo中介平台
  • 做网站最少多少钱免费模板网站都有什么区别
  • 制作链接的app的软件有哪些网站人多怎么优化
  • 缅甸网站后缀seo优化包括哪些
  • 还有网站吗wordpress图片文章