Ubuntu22.04 交叉编译gcc9.5 for arm

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

一、准备

环境:ubuntu22.04为刚刚安装,未安装gcc等包

vi ~/.bashrc输入

export PATH=$PATH:/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin

保存,reboot

Ubuntu22.04 交叉编译gcc9.5 for arm,arm开发,linux,gcc 交叉编译

安装:

sudo apt install cmake
sudo apt install gawk
sudo apt install bison

第一步:安装glibc-2.34

mkdir build
cd build

../configure --prefix=${PWD}/install \
--build=arm-linux-gnu \
--host=arm-linux-gnu \
--target=arm-linux-gnu \
CC=arm-linux-gnueabihf-gcc \
CXX=arm-linux-gnueabihf-g++ \
CPP=arm-linux-gnueabihf-cpp \
--disable-multilib libc_cv_forced_unwind=yes

make
make install

第二步:编译gmp-6.1.0

./configure --prefix=${PWD}/install/ --host=arm-linux --disable-assembly CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++

make 
make install

第三步:编译mpfr-3.1.4

./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp=/opt/gmp-6.1.0/install

make
make install

第四步:编译mpc-1.03

./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp=/opt/gmp-6.1.0/install --with-mpfr=/opt/mpfr-3.1.4/install

make
make install

第五步:编译isl-0.18

将/opt/gmp-6.1.0/install/lib目录下所有库文件拷贝到gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/,

Ubuntu22.04 交叉编译gcc9.5 for arm,arm开发,linux,gcc 交叉编译

然后执行

./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp-prefix=/opt/gmp-6.1.0/install

make
make install

第六步:编译gcc-9.5

删除cc

cd /usr/bin
sudo rm cc
sudo ln -s /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc cc
reboot

然后安装一些库,要不然编译不过

sudo apt-get install lsb-core lib32stdc++6

然后执行

./configure --prefix=${PWD}/build \
--with-gmp=/opt/gmp-6.1.0/install \
--with-mpfr=/opt/mpfr-3.1.4/install \
--with-mpc=/opt/mpc-1.0.3/install \
--with-isl=/opt/isl-0.18/install \
CC=arm-linux-gnueabihf-gcc \
CXX=arm-linux-gnueabihf-g++ \
CPP=arm-linux-gnueabihf-cpp \
--host=arm-linux-gnueabihf \
--target=arm-linux-gnueabihf \
--with-newlib \
--without-headers \
--enable-initfini-array \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-checking=release \
--enable-languages=c,c++

make -j8 all-gcc
make install-gcc

编译结果

Ubuntu22.04 交叉编译gcc9.5 for arm,arm开发,linux,gcc 交叉编译

编译gmp遇到问题:

问题:Oops, mp_limb_t is 64 bits, but the assembler code
解决:https://gist.github.com/cwoac/5844398
I realised the first failure was because it tried to build the 64 bit code on a 32 bit platform.
The attached gist is the failure when running with --32-bit.

This can be worked around by adding --disable-assembly to the configure call

同时:
sudo apt-get install m4

备注:

gcc-9.5源码根目录/contrib/download_prerequisites 里面地有需要依赖的库源码版本,可以直接执行./contrib/download_prerequisites下载文章来源地址https://www.toymoban.com/news/detail-714429.html

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

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

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

相关文章

  • ubuntu22.04编译安装使用gstreamer指南

    ubuntu发行版22.04,该发行版内置Gstreamer1.20.1,gstreamer源码最新版本为1.20.3,差距不大 下载gstreamer源码 安装git 下载gstreamer 安装meson gstreamer1.60以后(不包含1.60),使用meson+ninja来构建 安装glib gstreamer是基于glib-gobject来实现的 安装libsoup 安装libunwind 安装libdw 安装g-ir-scanner 系统中

    2024年02月05日
    浏览(58)
  • Ubuntu 22.04 编译安装 Qt mysql驱动

    参考自 Ubuntu20.04.3 QT5.15.2 MySQL驱动编译 Ubuntu 18.04 编译安装 Qt mysql驱动 下边这篇博客不是主要参考的, 但是似乎解决了我的难题(找不到 libmysqlclient.so ) ubuntu18.04.2 LTS 系统关于Qt5.12.3 无法加载mysql驱动,需要重新编译MYSQL数据库驱动的问题以及解决方案 系统版本 MySQL 肯定要先安

    2024年01月16日
    浏览(46)
  • Ubuntu20.04与22.04 openssl与openssl编译安装

    操作系统openssl版本查看: 推荐根据操作系统默认版本下载对应修复版本 ubuntu20.04 openssl版本:OpenSSL 1.1.1f ubuntu22.04 openssl版本:OpenSSL 3.0.2 首先,使用 wget 命令下载 OpenSSL 的源代码压缩包。从 OpenSSL 官方网站上找到最新版本的源代码。 如下以ubuntu20.04示例: 解压源代码 使用

    2024年02月06日
    浏览(41)
  • [linux]Ubuntu 18.04安装arm-linux-gcc交叉编译器的两种方法

    第一种:apt安装法: Ctrl+Alt+T弹出终端,使用如下命令进行arm-linux-gcc的安装:   使用如下命令进行arm-linux-g++的安装:   如果要卸载时使用如下命令进行移除,arm-linux-gcc的卸载:   arm-linux-g++的卸载:  第二种源码安装: 目前网上搜索发现,最多人安装的是4.4.3版本的

    2024年02月05日
    浏览(38)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(95)
  • Ubuntu22.04编译安装Mysql5.7.35

    新升级的ubuntu22.04版本,该版本默认openssl已经升级到3.0,所以编译过程遇到一些问题记录一下。 安装依赖 gcc g++已经安装过就不需要再安装了。 还有缺少其它依赖的相继安装就可以了。 编译openssl1.1.1 因为默认的openssl3.0,mysql执行cmake过程一直报错,所以手动下载openssl1.1.1编

    2024年02月11日
    浏览(25)
  • ubuntu22.04下rv1109 rootfs编译问题处理

    出于对Ubuntu新版本系统的体验,将系统更新到了ubuntu22.04了。然后在编译rv1109 sdk时出现了一些异常的错误。但是已经不回去了,只能硬着头皮一路走下去了。并将错误记录以下,以便下次有类似错误,做个参考。 buildroot 报错:c-stack.c:55:26:error:missing binary operator before token “

    2024年02月11日
    浏览(26)
  • Openharmony3.2 源码编译(ubuntu 22.04) 过程记录

    OS: ubuntu 22.04 x64 1.1 安装码云repo工具 1.2 将repo添加到环境变量 1.3 获取源码 需有gitee.com 账号,同时设置好ssh 公钥登录(https://gitee.com/help/articles/4191#article-header0) 2.1 安装编译工具 2.2 将hb添加到环境变量 2.3 通过hb 选取板卡配置 解决方法: 2.4 编译 解决方法: 安装ninja 和 gn

    2024年02月08日
    浏览(32)
  • OpenWRT LEDE在Ubuntu22.04 编译全过程记录

    注, feeds用法 查看更新的订阅源信息,index file feeds/packages.index 【问题1】m4 编译错误 解决,参考博文 【问题2】 freadahead 异常 解决,参考博文 注意 : 参考博文中的 _IO_IN_BAXKUP 应该为 _IO_IN_BACKUP ,否则会导致下述报错,此文为正确写法 【问题3】 bison-3.0.4 相关错误 解决,参考

    2024年02月12日
    浏览(93)
  • 最新版ubuntu22.04安装NVIDIA显卡驱动以及CUDA、CUDNN,和安装驱动gcc版本问题解决。

    1.驱动安装参考下述链接 1.1 NVIDIA显卡驱动、 CUDA 的安装参考这个博主的具体安装步骤,但是最后一步的 cudnn 的安装参考另一个博主,见链接。 1.2 可以选择最新版本的驱动,需要在官网去找最新的版本对应。 2.最新版本我遇到的错误以及解决方法 2.1.在进入tty1界面后ubuntu安装

    2024年04月24日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包