You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重新编译GNU Arm嵌入式工具链的newlib与newlib-nano?

重新编译ARM GNU工具链中的newlib与newlib-nano步骤

嘿,针对你用的这款gcc-arm-none-eabi 6-2017-q2版本,重新编译里面的newlib和newlib-nano其实不难,跟着下面的步骤来就行:

1. 先搞定编译依赖

在Windows上搞这类交叉编译,推荐用MSYS2环境,它的包管理比老的MinGW方便多了。先装好MSYS2,然后打开MSYS2的终端,安装必要的编译工具:

pacman -S base-devel git mingw-w64-x86_64-gcc mingw-w64-x86_64-make autoconf automake libtool

这些工具是编译newlib的基础,缺一不可。

2. 拉取对应版本的newlib源码

你已经从release.txt里拿到了准确的commit哈希0d79b021a4ec4e6b9aa1a9f6db0e29a137005ce7,直接克隆仓库并切换到这个版本:

git clone git://sourceware.org/git/newlib-cygwin.git
cd newlib-cygwin
git checkout 0d79b021a4ec4e6b9aa1a9f6db0e29a137005ce7

这样就能确保你编译的newlib和工具链自带的版本完全一致。

3. 配置编译参数(区分newlib和newlib-nano)

newlib是交叉编译库,必须指定目标平台为arm-none-eabi,而且newlib和newlib-nano的配置参数不一样,分开来搞:

编译标准版newlib

建议用out-of-tree编译(也就是在源码外新建编译目录),这样不会污染源码文件:

mkdir build-newlib && cd build-newlib
../newlib-cygwin/configure --target=arm-none-eabi --prefix=/path/to/your/install --enable-multilib

这里的--prefix是你想把编译好的newlib安装到的路径,比如可以设为D:/my-newlib,或者直接指向你现有工具链的安装目录(替换前记得备份原文件)。

编译newlib-nano

newlib-nano是精简版的newlib,核心是开启了一堆精简优化选项,配置命令要加上这些参数:

mkdir build-newlib-nano && cd build-newlib-nano
../newlib-cygwin/configure --target=arm-none-eabi --prefix=/path/to/your/nano-install --enable-multilib --enable-newlib-nano-malloc --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io

这些参数都是官方定义的newlib-nano标准配置,能让生成的库体积大幅缩小,适合嵌入式场景。

4. 编译+安装

配置完成后,就可以开始编译了,用多线程编译能快不少:

make -j$(nproc)  # 自动用你电脑的所有核心编译
make install

如果是编译newlib-nano,就在对应的build-newlib-nano目录下执行同样的命令。

5. 替换现有工具链的newlib(可选)

要是你想让原来的gcc-arm-none-eabi工具链直接用你编译的版本,只需要把安装目录下的arm-none-eabi文件夹里的内容,覆盖到现有工具链的对应目录(比如gcc-arm-none-eabi-6-2017-q2-update/arm-none-eabi),替换前一定要备份原文件,避免搞坏原工具链。

内容的提问来源于stack exchange,提问作者ge45mue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:43:02