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
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • 开发工具链
    +关注

    关注

    0

    文章

    12

    浏览量

    1584
收藏 人收藏

    评论

    相关推荐

    MES工具更新信息 04/2024

    我们刚刚发布了最新的MES模赛思工具更新。MXAM、MoRe和MQC的最新版本已经为您下载安装做好了准备。 下面列出了工具亮点的简要概述和发行说明。同时也欢迎您前往官网查看我们的新功能
    的头像 发表于 11-13 14:46 162次阅读
    MES<b class='flag-5'>工具</b><b class='flag-5'>更新</b>信息 04/2024

    RISC-V 工具简介

    一、概述 “工具”是英文“toolchain”的翻译,它指辅助开发者完成程序开发、调试、性能分析调优等开发优化行为的一系列工具集合。它一般包含编译器、汇编器、链接器、调试器、模拟器等基础工具
    发表于 10-25 22:59

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译

    不同的cpu的对应的可执行的二进制文件。交叉编译安装建立交叉编译环境又可分为安装SDK(其中包含了交叉编译工具
    发表于 09-30 09:36

    飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译

    不同的cpu的对应的可执行的二进制文件。交叉编译安装建立交叉编译环境又可分为安装SDK(其中包含了交叉编译工具
    发表于 09-29 09:51

    【飞凌嵌入式OK3576-C开发板体验】应用编译运行

    源码需要下载的库文件。 编译前准备 环境说明 开发环境操作系统:Ubuntu24.04 64 位版 交叉工具:aarch64-non-linux-gnu 开发板使用 Bootloa
    发表于 08-26 17:55

    微软发布CrowdStrike故障恢复工具

    近期,CrowdStrike 的一次故障意外地引发了全球范围内约850万台Windows电脑的蓝屏崩溃现象,对此,微软迅速响应,发布了一款专用的恢复工具,并依据广泛的IT管理员反馈,迅速迭代推出了该工具更新版本。
    的头像 发表于 07-23 14:41 325次阅读

    在ubuntu 24.04下尝试使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具编译cv1800大核出现报错的原因?

    在ubuntu 24.04下尝试使用riscv64-linux-musleabi_for_x86_64-pc-linux-gnu工具编译cv1800大核,结果出现如下报错: /home
    发表于 07-16 08:20

    opensuse linux安装好了交叉工具并且设置了 IDF_PATH,make all的时候会报错为什么?

    opensuse linux,已经安装好了交叉工具(官网下载的)并且设置了 IDF_PATH。可以make menuconfig,但是make all的时候会报错。我的编译器是装好的
    发表于 06-26 06:57

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-交叉编译描述及使用方法

    1.交叉编译:arm-poky-linux-gnueabi 2.默认安装路径:/opt/fsl-imx-x11/4.1.15-2.0.0 3.设置环境变量的命令:. /opt
    发表于 05-20 16:55

    飞凌嵌入式ElfBoard ELF 1板卡-交叉编译描述及使用方法

    1.交叉编译:arm-poky-linux-gnueabi 2.默认安装路径:/opt/fsl-imx-x11/4.1.15-2.0.0 3.设置环境变量的命令:. /opt
    发表于 05-20 16:53

    苹果发布macOS 14.5正式版,新增“Quartiles”单词游戏,支持多项更新

    合格的 Mac 用户可通过系统设置中的“软件更新”免费获取 macOS Sonoma 14.5 更新。对于仍在使用 macOS Ventura 的用户,本次更新版本号为 13.6.7;若使用的是 macOS Monterey,则
    的头像 发表于 05-14 11:10 4930次阅读

    志橙股份更新IPO招股书

    近日,志橙股份发布了更新版的IPO招股书,并对过往三轮问询的回复内容进行了修订。该公司计划筹集8亿元资金,募集资金用于SiC材料研发制造总部项目,SiC材料研发项目,还用于发展与科技储备资金,为公司的长远发展提供资金保障。
    的头像 发表于 03-25 15:39 474次阅读

    苹果发布macOS 14.4更新,增加新Emoji表情和安全功能

    苹果公司3月8日宣布推出Mac电脑的macOS 14.4更新版,该版本的内部编号为23E214,相较前一次的发布已经经过了长达28天的等待。值得一提的是,由于技术原因,部分地区用户可能会在半个小时以内接收到此次更新请求。
    的头像 发表于 03-08 11:13 1672次阅读

    关于CY7C65215-32LTXI.cyusb固件更新的疑问求解

    确认一下是否正确和完整,fwdownload.exe文件如果有相应的更新版本,也请一并提供一下,谢谢!!
    发表于 02-28 06:38

    linux服务器端口怎么开放?

    save 或 sudo systemctl enable iptables 二、firewalld: CentOS/RHEL 7及更新版本: 启动firewalld服务:
    的头像 发表于 12-19 17:21 2406次阅读