irpas技术客

ubuntu20.04搭建arm交叉编译环境_arm交叉编译环境搭建_我是huhu

未知 4440

1.下载arm交叉编译程序 源码下载地址:Downloads | GNU-A Downloads – Arm Developer

要根据目标系统选择编译器版本,我的主板是arm64位小端,所以选择图中位置

(aarch64-none-linux-gnu):arm64位 linux裸机

(aarch64-none-linux-gnu):arm64位 linux小端

(aarch64_be-none-linux-gnu):arm64位 linux大端

??

?解压文件 tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz 拷贝文件到合适的位置(我的位置: /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu)目录内容如下

??

?该内容用于配置qt内部的qmake.conf文件

?2.编译arm的qt项目源码 qt源码下载路径:https://download.qt.io/archive/qt/5.12/5.12.12/single/解压文件 tar -xvf qt-everywhere-src-5.12.12.tar.xz 拷贝文件到合适的位置(我的位置:/home/huhu/third_part/qt-everywhere-src-5.12.12? ? /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu)进入/home/huhu/third_part/qt-everywhere-src-5.12.12/qtbase/mkspecs目录下找到linux-aarch64-gnu-g++ 拷贝到linux-none-aarch64-gnu-g++: cp -r?linux-aarch64-gnu-g++?linux-none-aarch64-gnu-g++ 进入拷贝后的linux-none-aarch64-gnu-g++文件夹编辑qmake.conf文件结果如下: # # qmake configuration for building with aarch64-none-linux-gnu-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = aarch64-none-linux-gnu-gcc QMAKE_CXX = aarch64-none-linux-gnu-g++ QMAKE_LINK = aarch64-none-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-none-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = aarch64-none-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-none-linux-gnu-objcopy QMAKE_NM = aarch64-none-linux-gnu-nm -P QMAKE_STRIP = aarch64-none-linux-gnu-strip load(qt_config)

以上内容取决于交叉编译软件( /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin)文件夹下程序名

创建编译输出文件夹,并增加权限 mkdir arm-qt chmod +x arm-qt/ 执行configure生成Makefile文件,命令如下: ./configure -opensource -prefix /home/huhu/third_part/qt-everywhere-src-5.12.12/arm-qt -xplatform linux-none-aarch64-gnu-g++ -release -no-cups -qt-zlib -qt-libjpeg -qt-libpng -no-openssl -no-pch -confirm-license -no-opengl

-prefix :编译完成文件输出目录

-xplatform:编译平台(/home/huhu/third_part/qt-everywhere-src-5.12.12/qtbase/mkspecs目录下新修改的qmake.conf所在的文件夹名称)

?看到下图内容表示Makefile文件生成成功

执行编译:make make install 3.qt安装与qtcreator交叉编译配置: 下载路径:Index of /archive/qt/5.14/5.14.1修改权限 sudo chmod 777 qt-opensource-linux-x64-5.14.1.run 执行安装 ./qt-opensource-linux-x64-5.14.1.run

安装过程参考:Index of /archive/qt/5.14/5.14.1

我构建成功的文件名为button_test,在路径/home/huhu/third_part/qt_project/build-button_test-arm_linux-Debug下

?

?4.?测试

启动arm主板,使用ifconfig获得主板ip地址,使用scp 将构建好的项目发送到arm主板上

scp 要传输的文件地址 用户名@ip地址:目标地址

scp ./button_test huhuarm@192.168.2.10:/home/huhuarm/Desktop/

传输成功后在arm上双击button_test文件运行,完成


问题1:

??

?解决办法:安装build 的组件 sudo apt-get install build-essential

问题2:

??

?因为我没有编译opengl模块,所以编译命令增加-no-opengl 参数

问题6:

?

原因是ubuntu20.04默认安装了python3,所以需要给python创建一个软连接到python,这样命令行使用python才能成功调用到python3

sudo ln -s /usr/bin/python3 /usr/bin/python


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #arm交叉编译环境搭建 #linux大端 #prefix #编译完成文件输出目录