Ubuntu20.04下arm-none-eabi-gcc4.8.2提示nano.specs不存在如何解决
问题根因
arm-none-eabi-gcc 4.8.2版本的默认deb安装包未集成newlib-nano组件,nano.specs是newlib-nano提供的编译配置文件,你当前安装的普通libnewlib库不包含该文件,因此调用时会提示找不到。
解决步骤
方法1:安装对应版本newlib-nano deb包(推荐)
- 下载与你现有newlib版本匹配的deb包:
libnewlib-nano-arm-none-eabi_2.1.0-3_all.deb,该包和你已安装的libnewlib-arm-none-eabi_2.1.0-3_all.deb依赖完全兼容,不会冲突。 - 执行安装命令:
sudo dpkg -i libnewlib-nano-arm-none-eabi_2.1.0-3_all.deb
- 安装完成后重新执行编译即可,无需修改Makefile参数。
方法2:手动补全nano相关文件
如果找不到对应deb包,可以手动从ARM官方发布的gcc-arm-none-eabi 4.8-2014q1版本压缩包中提取所需文件:
- 解压官方压缩包后,进入
arm-none-eabi/lib/目录 - 将目录下所有
nano.specs、*_nano.a格式的文件,拷贝到系统对应路径/usr/arm-none-eabi/lib/下,执行如下命令赋权:
sudo chmod 644 /usr/arm-none-eabi/lib/*nano*
异常排查
如果安装后仍然提示找不到文件,可以手动指定specs绝对路径:
- 执行搜索命令找到文件实际路径:
sudo find /usr -name "nano.specs"
- 将Makefile中的
-specs=nano.specs参数替换为搜索到的绝对路径,例如:
-specs=/usr/arm-none-eabi/lib/nano.specs
验证
配置完成后执行以下命令,无报错则说明配置生效:
arm-none-eabi-gcc -specs=nano.specs --version
内容的提问来源于stack exchange,提问作者gogogo
相关产品推荐
相关产品推荐

