Ubuntu20.4配置arm交叉编译环境

这篇具有很好参考价值的文章主要介绍了Ubuntu20.4配置arm交叉编译环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ubuntu20.4配置arm交叉编译环境

我是在虚拟机中配置的,如果你的嵌入式设备足够完成自己的编译,可以不考虑虚拟机的。

  • 新安装的Ubuntu20.04系统请先执行以下代码
sudo apt update
sudo apt upgrade
  • 到aarch64下载对应的aarch64的base镜像。

Ubuntu20.4配置arm交叉编译环境

  • 之后执行如下命令,创建armsys文件夹,之后将刚下载的镜像拷贝到该文件夹下并且解压
cd /
mkdir /armsys
  • 安装一些必要的软件
 sudo apt install qemu qemu-user-static binfmt-support debootstrap
  • 注册aarch64的运行环境
sudo update-binfmts --enable qemu-aarch64
  • 为了能在x86 Ubuntu上chroot到/armsys并执行aarch64的程序,还需要将qemu-aarch64-static拷贝到/path/to/rootfs/usr/bin/;
sudo cp -av /usr/bin/qemu-aarch64-static /armsys/usr/bin/
  • 配置arrch64 Ubuntu的网关;
cp /etc/resolv.conf /armsys/etc/resolv.conf
  • chroot到aarch64 Ubuntu的armsys,并安装开发库。
sudo chroot /armsys
apt update 
apt upgrade
apt install -y libopencv-dev

执行后面的update可能会报错
Ubuntu20.4配置arm交叉编译环境

这个时候我们需要去检查/dev/null

rm -f /dev/null
mknod -m 666 /dev/null c 1 3

以上命令也可能无法创建null ,这个时候我们只要去到对应的文件夹修改null权限为666就可以正常运行上述代码了。

  • 准备x86上aarch64的编译工具。
exit
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
  • 在arm环境中安装交叉编译工具,并且将/usr/bin添加到环境变量
apt-get install gcc-aarch64-linux-gnu
pt-get install g++-aarch64-linux-gnu
apt install vim
vim /etc/profile

# 将下面的一句话放到文件末尾
# export PATH="/usr/bin:$PATH"
source /etc/profile
# 查看gcc版本
aarch64-linux-gnu-gcc -v

编译Qt5.12.8

  • 在Qt5.12.8下载对应的源码包

Ubuntu20.4配置arm交叉编译环境

  • 将下载完成的QT源码拷贝到对应的文件夹内,解压源码
tar -xvf qt-everywhere-src-5.12.8.tar.xz
  • 解压完毕之后进入源码目录,修改文件
vim qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

# 增加一下内容
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a -lts

  • 安装ninja
apt-get install ninja-build
  • 安装xcb

Ubuntu20.4配置arm交叉编译环境

下载拷贝到linux的arm环境内

之后运行如下脚本:

./configure
make -j4
make install
# 必须先执行proto之后再安装libxcb。如果你在libxcb ./configure的时候报错了执行下面的脚本
sudo apt install libxau-dev libpthread-stubs0-dev

当然,如果你的make命令不能执行,你需要安装一下。

  • 上述执行完成之后开始编译QT
./configure -prefix /usr/bin/arm512qt5.12.8 -xplatform linux-aarch64-gnu-g++

报错,故而安装了一些额外的包

apt-get install flex
apt-get install bison
apt-get install gperf
apt-get install libxcb*
apt-get install build-essential
apt-get install libgl1-mesa-dev
apt-get install libglu1-mesa-dev
apt-get install libegl1-mesa-dev
apt-get install freeglut3-dev

如果你在编译的时候报错(numeric_limits),进入源码/qtbase/src/corelib/global 修改qglobal.h

#ifdef __cplusplus
#include <type_traits>
#include <cstddef>
#include <utility>
#include <limits> //加上这行
#endif
#ifndef ASSEMBLER
#include <assert.h>
#include <stddef.h>
#endif

如果你遇到问题 ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.

./configure -prefix /usr/bin/arm512qt5.12.8

中途会报两个错误,源自于QT源码错误,只要将对应的头文件和cpp文件缺失的头包含进去就行了。(报错很明显,不需要再贴图了哈。)文章来源地址https://www.toymoban.com/news/detail-458794.html

到了这里,关于Ubuntu20.4配置arm交叉编译环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu上搭建ARM Linux GCC交叉编译环境

    在Ubuntu操作系统上搭建ARM Linux GCC交叉编译环境是为了能够在x86架构的主机上编译运行适用于ARM架构的程序。本文将介绍详细的步骤以及相应的源代码。 安装必要的软件包 首先,我们需要安装一些必要的软件包,包括GCC、GNU Binutils和GDB。打开终端,运行以下命令来安装这些软

    2024年02月02日
    浏览(53)
  • ubuntu环境下gcc-arm交叉编译环境的搭建(ARM32 8.2)

    1.在arm官网下载gcc-arm 8.2的版本(下载arm32架构的x64上运行的版本),网址如下 https://developer.arm.com/downloads/-/gnu-a 图1 从ARM官方下载aarch32架构的交叉编译器   2.拷贝下载的交叉编译器到ubuntu系统的/opt/pkg/gcc_linaro目录,如下图所示: 图2 拷贝arm交叉编译器到gcc安装目录   3.解压gcc到

    2024年02月09日
    浏览(51)
  • Ubuntu与致远ARM交叉编译Qt5.12环境

            ARM板现有环境配置(主要是对/etc/profile/编辑)较简单,参考上一篇博客,板子上已经部署了Qt5.15。 Ubuntu与国产致远ARM_3568交叉编译Qt 此文档只是为了记录错误的过程,下一往篇博客会直接介绍正确的配置。 https://blog.csdn.net/qq_35529025/article/details/129524412        

    2024年02月22日
    浏览(45)
  • x86架构ubuntu 搭建arm64交叉编译环境及QT编译arm64架构工程

    背景:由于最近项目需要做国产系统适配,很多软件需要重新编译以适配不同架构CPU。 环境: 1、主机win10 64bit   vmware虚拟主机ubuntu1804 64bit 2、vmware虚拟主机已经安装了qt5.14.2及qt_create4.11.1 一、C/C++程序交叉编译 1、交叉编译环境搭建 ①选定编译工具aarch64-linux-gnu ②安装交叉

    2024年02月09日
    浏览(65)
  • Ubuntu 22.04 搭建arm-linux-gcc交叉编译环境

    如果使用的是64位的Ubuntu系统,建议直接安装64位的arm-linux-gcc交叉编译器 下载地址: https://pan.baidu.com/s/14-lQpsXuEyCcHNHcTXcOyA 提取码: 55at 0. 注意在终端进行粘贴的操作为【Ctrl+shift+v】!! 把下载好的安装包移动到根目录下的tmp目录中(/tmp):在【其他位置】中的【计算机】中找

    2024年02月05日
    浏览(76)
  • Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

    最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提供的qt everywhere套件在板载系统上编译 移植Qt到ARM平台及

    2024年04月11日
    浏览(52)
  • libreoffice 7 ( arm64 ubuntu20.04 环境) 源码编译

    基础环境 cpu os docker Dockerfile

    2024年02月13日
    浏览(65)
  • ubuntu20.4 静态网络配置(保姆级图文教程)

    之前一直使用的Linux系统都是centOs,突然换成Ubuntu之后不知道怎么配置网络,网上查找了很多资料都不可用,最后终于在一篇博客里看到了20.4版本的网络配置教程,在此贴上链接,并记录 Linux ubuntu20.04 网络配置(图文教程)_ubuntu20.04网络配置_isOllie的博客-CSDN博客 系统:ubu

    2024年02月05日
    浏览(43)
  • ubuntu20.4安装配置ros系统(noetic)

    不同ubuntu版本对应的ros版本 ubuntu版本 ros1版本 ros2版本 16.04 kinetic ardent 18.04 melodic dashing 20.04 noetic foxy   1、打开软件与更新,切换ubuntu软件源(国内中科大源) 2、打开终端,添加ros软件源(中科大镜像站) 3、配置公钥   4、更新软件源   5、安装ros系统(ps:命令中的noetic根

    2024年02月07日
    浏览(43)
  • openssl交叉编译 (ubuntu+arm)

    1.下载安装包  wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz 2.解压安装包 tar -zxvf openssl-1.1.1l.tar.gz 3.进入源码文件夹-修改编译器 CC=arm-linux-gnueabihf-gcc 4.配置编译参数 ./config no-asm -shared --prefix=/home/alientek/sp_test/openssl/sp_install 1)no-asm在交叉编译过程中不使用汇编代码代码加速编译

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包