编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

目的规划步骤

交叉编译时要注意版本问题,主要是和目标机(最终会运行程序的机器)对位,多花时间去识别目标机的开发环境的版本,找到目标机的交叉编译链对应版本。 它旁边的大多数一般指示都是正确的。

目标机搭载Galaxy Kirin(V10,不是V10SP1),版本信息如下

Linux version 4.4.131-20210817.kylin.desktop-generic (YHKYLIN-OS@d0ee15aef8b2) 
(gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6kord1~16.04.12) ) #kylin-KylinOS SMP Tue Aug 17 08:41:44 UTC 2021

交叉编译的环境是用虚拟机搭建的,使用的是ubuntu系统,版本信息如下。

Linux version 5.13.0-40-generic (buildd@ubuntu) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 
GNU ld (GNU Binutils for Ubuntu) 2.34) #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022

现在我们来看看开发环境的版本。 虽然主要是匹配gcc的版本,但是目标机的gcc版本是gccversion5.4.020160609(Ubuntu/Linaro5.4.0-6kord1~16.04.12),而ubuntu20.04自带的gcc是肯定不能用的,因为它是x86架构版本。 需要找到与目标机gcc版本匹配的交叉编译链并安装在虚拟机上,版本需要匹配到什么程度? 两个gcc版本必须相同吗? gcc 仍有几个小的版本差异可以算作匹配。 这里还有一个参数需要检查,就是libc.so.6的版本(这个文件的历史和作用可以百度搜索到),它是gcc安装中的一个库文件的软链接目录。 找到该文件,执行ls -l 查看结果。 目标机的版本是libc-2.23.so,那么目标机的gcc只能支持2.23版本? 这里可以执行strings/lib/aarch64-linux-gnu/libc.so.6|grepGLIBC_,查看结果,支持的版本有2.17、2.18、2.22、2.23,也就是说我们的交叉编译链gcc正在寻找该库的版本与其中之一匹配,这提高了兼容性。

xxx@xxx:/lib/aarch64-linux-gnu$ strings libc.so.6 | grep ^GLIBC_
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_PRIVATE

接下来要做的就是寻找交叉编译链。 上面可以看到目标机的gcc版本是gccversion5.4.020160609,于是就从这个版本开始查找。这次是在下面的网站找到的

folder	4.9-2016.02	-		
folder	4.9-2017.01	-		
folder	5.1-2015.08	-		
folder	5.2-2015.11	-		
folder	5.2-2015.11-1	-	  	
folder	5.2-2015.11-2	-	  
folder	5.3-2016.02	-		
folder	5.3-2016.05	-		
folder	5.4-2017.01	-	//这两个版本看样子符合我们的要求起码是5.4版本的	
folder	5.4-2017.05	-   

然后点击单步进入几层目录,直接到达这个地址,选择解压后可以直接使用的成品(还要注意32位、64位、big-endian还是little-endian,还有根据自己的开发环境选择系统和机器)

Name	                                                    Last modified	    Size	License
gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz	27-Feb-2018 00:14	86.5M	open        //这个是解压后就能用的

直接下载下来,放到虚拟机里,解压,先检查上面说的版本,结果如​​下,目标机的版本刚好和虚拟机的版本兼容,这个应该可以用

xxx@xxx:/usr/local/gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib$ strings libc.so.6  | grep ^GLIBC_
GLIBC_2.17
GLIBC_2.18
GLIBC_PRIVATE

参考博客如下,谢谢

%257B%2522request%255Fid%2522%253A%2522161754731016780357222094%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2 52 2%257D&request_id=161754731016780357222094&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2 ~rank_v29-1-115427620.nonecase&utm_term=%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91

编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

交叉编译Qt源代码

编译源码之前一定要阅读源码目录下的README文件,基本可以匹配编译环境

现在我已经找到了合适的交叉编译链,连接上之后就可以使用交叉编译链来编译Qt源码,生成arm版本的库文件了。 可以参考下面掠夺者的博客。 我基本都是跟着他的步骤走的。

defaultBlogCommendFromBaidudefault-8.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultBlogCommendFromBaidudefault-8.pc_relevant_default&utm_relevant_index=12

#qt源码下载地址

事实上,即使一步一步做到了,仍然会出现不可预知的问题,前进的道路仍然是曲折的。 一开始想编译5.15.2版本,结果是内存字节没有对齐。 然后我又尝试了4.8.7版本,又报错了。 最后尝试5.13.2版本,多次尝试编译成功。

编译Qt源码主要是写configure参数,可以参考我的

#!/bin/bash
./configure -prefix /usr/local/qt5.13.2ForArm 
-opensource 
-confirm-license 
-skip qtlocation    # 这个模块当时编译报错,我用不到为了赶时间直接跳过了
-nomake examples 
-nomake tests 
-xplatform aarch64-linux-gnu-g++  
-debug 
-no-opengl 

也可以参考这篇文章查看Qt模块

我在makeinstall中也遇到过,没有发现python错误编译istio源码,可以参考这篇文章

编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

执行make的时候会报找不到交叉编译器的错误,但是我确实添加了编译器的环境变量。 我被这个问题困扰了很长时间。 你可以参考这篇文章

按照上面的方法,可以交叉编译qt源码,而且编译成功。 事实上,模块肯定不完整。 很多模块没有相应的环境,基本使用还是够用的。

qtcreator编译arm版qt程序

直接使用交叉编译链命令行来编译程序对我来说有点复杂,还要写Makefile。 所以我决定用qtcreator来编译程序。 这里需要注意的是,安装qtcreator时编译istio源码,只需要检查qtcreator模块本身即可,qt提供的其他编译器不需要。 至于qtcreator的版本,我用的也是5.13.2版本。

操作步骤请参考下面的博客,可以找到qt自带的示例程序编译一下,看看能不能通过(我从windows上找到了源码,我没有下载qt的源码) ubuntu 上的示例程序)

以下是我配置的界面

###解答1:您好编译链源码,要下载Qt5.5.1源代码,您可以按照以下步骤操作: 1.打开Qt官方网站:qt.io/downloads,点击“下载”按钮。 2. 在下载页面,选择“源代码”选项卡,选择操作系统对应的Qt版本。 3、下载页面会有一个“开始下载”按钮,点击该按钮即可开始下载Qt5.5.1源码压缩包。 4、下载完成后编译链源码,将压缩包解压到想要存放Qt源码的目录。 5、打开解压后的文件夹,找到文件夹中的“configure”文件,双击运行。 6. 配置脚本将根据您的操作系统和编译器设置Qt编译环境。 7、配置完成后,使用命令行或者IDE打开Qt源代码文件夹。 8.在Qt源代码文件夹中,可以找到各个模块的源代码、示例和文档。 这样,你就成功下载了Qt5.5.1的源码,可以在自己的机器上阅读、学习或者二次开发了。 如果需要根据自己的需求进行编译构建,可以参考Qt官方编译手册进行操作。 祝您学习愉快! ###答案2:Qt5.5.1是一个跨平台的应用程序开发框架。 如果您想下载其源代码,可以按照以下步骤操作: 1. 打开Qt的官方网站(qt.io/),点击网站底部的“下载”按钮。

编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

2、在下载页面,选择“Archives”选项卡,找到“Qt5.5.1”版本并点击。 3. 在弹出的页面中,选择您的操作系统和编译器版本。 如果您使用的是Windows操作系统,可以选择基于MSVC2013或MinGW编译器的版本。 如果您使用的是Mac系统,可以根据Clang版本选择Qt。 如果您使用的是Linux系统,可以根据GCC版本选择Qt。 4.根据您的选择,点击对应的下载链接,开始下载对应的离线安装包。 5、下载完成后,解压安装包,即可得到Qt5.5.1的源代码文件。 另外,Qt的源代码也可以通过版本控制工具Git获取。 您可以在Qt官方Git仓库(qt.io/cgit/qt/qt5.git/)中找到Qt5.5.1的源代码,然后根据Git的使用情况克隆或下载源代码。 需要注意的是,Qt的源代码下载量可能比较大,因此下载时间可能比较长,需要一定的网络带宽和存储空间来存储源代码。 ###解答3:您可以通过以下步骤下载qt5.5.1源代码: 1、打开Qt官网(qt.io/),点击底部菜单栏的“下载”按钮。 2、在下载页面,可以看到有不同版本的Qt可供下载。 向上滚动页面,直到找到下面的“历史 Qt 版本”部分。

编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

3. 在“历史 Qt 版本”部分中,找到并单击“版本 5.5.1”的链接。 4. 进入 5.5.1 版本的下载页面后,您将听到不同的 Qt 安装程序。 查找标有“源代码”或“src”的选项,然后单击下载链接。 5、下载源码包后,解压即可得到Qt5.5.1的源码。 请注意,Qt5.5.1 是一个可能已过时且不再受到官方支持的版本。 如果您正在寻找最新版本的 Qt 源代码,我建议您查看 Qt 官方网站上提供的最新版本。

编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 编译istio源码-银河麒麟(V10)-arm版交叉编译-qt-5.13.2源码 https://www.wkzy.net/game/128764.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务