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

使用arm-none-eabi-gcc交叉编译时,如何让ccache忽略nano.specs?

问题描述

使用arm-none-eabi-gcc交叉编译时,需要添加-specs=nano.specs参数,但该操作导致ccache无法正常工作,日志报错如下:

[2024-01-24T10:36:58.306578 191738] Failed to lstat nano.specs: No such file or directory
[2024-01-24T10:36:58.306581 191738] While processing -specs=nano.specs: nano.specs is missing
[2024-01-24T10:36:58.306602 191738] Failed; falling back to running the real compiler

尝试在-specs=nano.specs前添加--ccache-skip参数但无效,询问如何让ccache忽略nano.specs文件的检查。

解决方案

以下几种方法可解决该问题:

1. 使用nano.specs的绝对路径

ccache找不到nano.specs通常是因为文件不在当前工作目录或默认搜索路径中。先通过命令定位文件实际位置:

find / -name nano.specs 2>/dev/null

假设找到的路径为/usr/lib/gcc/arm-none-eabi/12.3.1/nano.specs,将编译参数修改为绝对路径形式:

arm-none-eabi-gcc -specs=/usr/lib/gcc/arm-none-eabi/12.3.1/nano.specs ...

这样ccache能准确定位到文件,不会触发找不到文件的错误。

2. 通过CCACHE_IGNORE_ARGS忽略该参数

设置环境变量CCACHE_IGNORE_ARGS,让ccache在处理编译参数时跳过对-specs=nano.specs的检查:

export CCACHE_IGNORE_ARGS="-specs=nano.specs"

若有多个需要忽略的参数,可用逗号分隔:

export CCACHE_IGNORE_ARGS="-specs=nano.specs,-specs=other.specs"

设置后,ccache会跳过该参数的存在性检查,直接调用真实编译器处理。

3. 写入ccache配置文件持久生效

如果不想每次编译都手动设置环境变量,可将配置写入ccache的全局配置文件(通常为~/.ccache/ccache.conf):

CCACHE_IGNORE_ARGS = -specs=nano.specs

保存配置后,ccache会自动应用该规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:35:13