0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux:制作mipsel 交叉工具链 (更新版)

如意 来源:CSDN 作者:CaspianSea 2020-06-23 08:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.代码结构为:

setup ---》 源代码压缩包

src ---》源码

~/code/cross-compile$ ls src/

binutils-2.24 gcc-4.7.1 gdb-7.6.2 glibc-2.18

build --》 编译目录

:~/code/cross-compile$ ls build/

binutils gcc gdb glibc

kernel ----》 内核代码:

~/code/cross-compile/kernel$ ls

linux-3.10

2.编译 binutils

在build/binutils 下,执行命令:

。./。./src/binutils-2.24/configure --target=mipsel-linux-gnueabi --prefix=/home/charles/code/cross-compile/embedded-toolchain/cross-tools --with-sysroot=/home/charles/code/cross-compile/embedded-toolchain

然后,执行 make, make install 安装

3. 编译 GCC stage 1

在 build/gcc目录下,执行

AR=ar LDFLAGS=“-Wl,-rpath=/home/charles/code/cross-compile/embedded-toolchain/cross-tools/lib” 。./。./src/gcc-4.7.1/configure --prefix=/home/charles/code/cross-compile/embedded-toolchain/cross-tools --target=mipsel-linux-gnueabi --with-sysroot=/home/charles/code/cross-compile/embedded-toolchain --with-gmp=/usr/local --with-mpfr=/usr/local --with-ppl=/usr/local --with-newlib --without-headers --disable-multilib --disable-nls --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-shared --disable-threads --enable-languages=c --with-float=soft --with-arch=mips32r2 --with-tune=mips32r2

然后,

make all-gcc all-target-libgcc

make install-gcc install-target-libgcc

4. 安装内核头文件

进入到内核代码目录,

执行命令:

ARCH=mips make mrproper

ARCH=mips make headers_check

ARCH=mips CROSS_COMPILE=mipsel-gcc-linux-gnueabi make INSTALL_HDR_PATH=/home/charles/code/cross-compile/embedded-toolchain/usr headers_install

find /home/charles/code/cross-compile/embedded-toolchain/usr/include/ -name “.install” -or -name “。.install.cmd” | xargs rm -fv ;\

5. 编译 GLIBC

进入到 build/glibc,执行

BUILD_CC=gcc CC=mipsel-linux-gnueabi-gcc AR=mipsel-linux-gnueabi-ar RANLIB=mipsel-linux-gnueabi-ranlib 。./。./src/glibc-2.18/configure --prefix=/usr --host=mipsel-linux --enable-add-ons --with-fp=no libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes libc_cv_ctors_header=yes --with-tune=mips32r2 --with-arch=mips32r2 --with-headers=/home/charles/code/cross-compile/embedded-toolchain/usr/include

把步骤3生成的mipsel gcc 加入到 path:

export PATH=$PATH:/home/charles/code/cross-compile/embedded-toolchain/cross-tools/bin

执行

make

make install install_root=/home/charles/code/cross-compile/embedded-toolchain

6.编译最后的GCC

AR=ar LDFLAGS=“-Wl,-rpath=/home/charles/code/cross-compile/embedded-toolchain/cross-tools/lib” 。./。./src/gcc-4.7.1/configure --prefix=/home/charles/code/cross-compile/embedded-toolchain/cross-tools --target=mipsel-linux-gnueabi --with-sysroot=/home/charles/code/cross-compile/embedded-toolchain --with-gmp=/usr/local --with-mpfr=/usr/local --with-ppl=/usr/local --disable-multilib --disable-libssp --disable-nls --disable-libstdcxx-pch --with-arch=mips32r2 --with-tune=mips32r2 --enable-languages=c,c++ --with-float=soft --with-mips-plt --disable-libgomp --disable-libmudflap --enable-poison-system-directories --enable-symvers=gnu --enable-long-long --enable-threads --enable-shared --enable-lto --enable-__cxa_atexit --with-gnu-as --with-gnu-ld

再执行

make all-gcc -j10 -i -k

make all-target-libgcc

make install-gcc

make install-target-libgcc

make

make install

最后,看一下生成的gcc的信息:

。/mipsel-linux-gnueabi-gcc -v

Using built-in specs.

COLLECT_GCC=。/mipsel-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/home/charles/toolchain/embedded-toolchain/cross-tools/bin/。./libexec/gcc/mipsel-linux-gnueabi/4.7.1/lto-wrapper

Target: mipsel-linux-gnueabi

Configured with: 。./。./src/gcc-4.7.1/configure --prefix=/home/charles/code/cross-compile/embedded-toolchain/cross-tools --target=mipsel-linux-gnueabi --with-sysroot=/home/charles/code/cross-compile/embedded-toolchain --with-gmp=/usr/local --with-mpfr=/usr/local --with-ppl=/usr/local --disable-multilib --disable-libssp --disable-nls --disable-libstdcxx-pch --with-float=soft --with-arch=mips32r2 --with-tune=mips32r2 --enable-languages=c,c++ --with-float=soft --with-mips-plt --disable-libgomp --disable-libmudflap --enable-poison-system-directories --enable-symvers=gnu --enable-long-long --enable-threads --enable-shared --enable-lto --enable-__cxa_atexit --with-gnu-as --with-gnu-ld

Thread model: posix

gcc version 4.7.1 (GCC)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217966
  • 开发工具链
    +关注

    关注

    0

    文章

    25

    浏览量

    1794
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32S工具

    决定了需要使用的工具版本。 1. 核心区别 架构 对应ESP芯片 工具名称 核心特性 Xtensa LX7 ESP32-S3 xtensa-esp32s3-elf 性能更强,支持A
    发表于 11-26 07:33

    Linux交叉编译实战:跑起来你的第一个 STM32 程序

    跑起来你的第一个STM32程序。一、准备工作在开始之前,需要准备:1、Linux开发环境Ubuntu、Debian或其他主流发行版都可以。2、ARMGCC交叉编译工具
    的头像 发表于 11-24 19:04 240次阅读
    <b class='flag-5'>Linux</b> 下<b class='flag-5'>交叉</b>编译实战:跑起来你的第一个 STM32 程序

    Nordic无线开发---nRF Connect SDK 3.0更新版的安装入门介绍

    2025.10.14更新: 增加了NCS v3.1.0和v3.1.1在中文Windows系统上编码问题的解决方案 增加了说明,nrfutil sdk-manager以及解决了SDK在Windows
    发表于 10-29 20:40

    MES工具更新信息 04/2025

    MES模赛思很高兴为您带来最新的MES工具更新信息。MXAM、MoRe和MQC的最新版本已经为您下载安装做好了准备。
    的头像 发表于 10-29 11:06 299次阅读
    MES<b class='flag-5'>工具</b><b class='flag-5'>更新</b>信息 04/2025

    Linux系统下各种工具无法找到的解决方法

    大家好,我们组按官方文档操作时在4.1和4.3步骤中遇到了不少问题,后来发现都是同一问题,详见下述: 工具链接问题 按官方文档给出的方法链接后可能会遇到以下
    发表于 10-27 07:49

    gcc工具无法汇编硬件浮点指令fsqrt问题

    团队在项目推进过程中发现,Linux环境下,math库中的sqrt()函数无论是在浮点数的gcc工具中还是整数的gcc工具中,综合的结果
    发表于 10-20 06:19

    MES工具更新信息 03/2025

    MES模赛思很高兴为您带来最新的MES工具更新信息。MXAM、MoRe和MQC的最新版本已经为您下载安装做好了准备。 下面列出了工具更新亮点
    的头像 发表于 07-30 16:42 655次阅读
    MES<b class='flag-5'>工具</b><b class='flag-5'>更新</b>信息 03/2025

    IAR发布RISC-V开发工具v3.40.1版本

    近期,IAR重磅发布其旗舰产品——RISC-V开发工具的全新版本v3.40.1,全面提升了在性能、安全性及自动化方面的能力。此次重大更新将进一步助力汽车、工业、医疗及物联网等行业打造
    的头像 发表于 06-25 14:16 1797次阅读

    IAR发布Arm开发工具v9.70.1版本

    近期,IAR重磅发布其旗舰产品——Arm开发工具的全新版本v9.70.1,全面提升了在性能、安全性及自动化方面的能力。此次重大更新将进一步助力汽车、工业、医疗及物联网等行业打造更敏捷
    的头像 发表于 06-25 14:12 2112次阅读

    IAR开发平台升级Arm和RISC-V开发工具,加速现代嵌入式系统开发

    IAR正式发布其旗舰产品的重大更新版本:Arm开发工具v9.70和RISC-V开发工具v3.40。
    的头像 发表于 06-11 14:28 647次阅读

    前端开发中依赖包有问题怎么办

    的 GitHub issue,可能已经有解决方案或临时解决办法。 2. 更新依赖 : 检查是否有该包的更新版本,更新可能已经修复了这个问题。 使用 npm update package-name 或 pnpm
    的头像 发表于 06-10 11:31 288次阅读

    谷歌推出Gemini 2.5 Pro预览版(I/O版本)

    我们目睹了开发者使用 Gemini 2.5 Pro 取得了令人赞叹的成就。因此,我们决定提前数周发布更新版本,以便开发者尽早体验新版模型。
    的头像 发表于 06-10 10:43 1001次阅读

    不借助Linux系统,在Windows下如何搭建ZMC900E交叉编译环境

    不需要依赖笨重的虚拟机,也不需要安装双系统。抛开繁琐的环境准备,在Windows上轻松搭建交叉编译环境。本文将介绍如何在Windows上搭建交叉编译环境,不借助Linux系统,直接进行交叉
    的头像 发表于 05-21 11:34 649次阅读
    不借助<b class='flag-5'>Linux</b>系统,在Windows下如何搭建ZMC900E<b class='flag-5'>交叉</b>编译环境

    龙芯2K0300开发板软件资料-新世界更新

    工具版本为gcc13.3。 优化内容: 1、提供搭建好环境的虚拟机ubuntu24.04。 2、修复I2C数据异常报错和音频功能效果提升。 3、优化出厂系统Qt界面。 4、更新出厂系统
    发表于 04-22 14:16

    MES工具更新信息 01/2025

    新年伊始,我们很高兴为您带来最新的MES工具更新。MXAM、MoRe和MQC的最新版本已经为您下载安装做好了准备。 下面列出了工具亮点的简要概述和发行说明。同时也欢迎您查看我们的新功
    的头像 发表于 02-20 16:28 818次阅读
    MES<b class='flag-5'>工具</b><b class='flag-5'>更新</b>信息 01/2025