Ubuntu下crosstool-ng构建树莓派工具链时expat下载失败
crosstool-ng构建工具链expat下载失败解决方案
核心原因
crosstool-ng 1.24.0版本内置的expat 2.2.6官方下载源已失效,且你手动放置tar包的路径不符合要求,因此无法被识别。
解决步骤
- 优先使用本地tar包方案
你日志中已提示Directory '/home/daniel/src' does not exist,crosstool-ng默认会优先读取~/src目录下的依赖包,而不是编译临时目录.build/tarballs:- 执行命令创建对应目录:
mkdir -p ~/src - 将下载好的expat 2.2.6安装包放到该目录,必须保证文件名和crosstool-ng要求的完全一致,为
expat-2.2.6.tar.bz2,同时校验文件的SHA512哈希和crosstool-ng内置的校验值匹配,避免因文件损坏不被识别 - 重新执行
./ct-ng build即可跳过下载步骤直接读取本地包。
- 执行命令创建对应目录:
- 修改下载源方案
如果本地包方案不生效,可以直接修改crosstool-ng的expat下载地址:- 进入crosstool-ng的安装目录,找到文件
scripts/build/companion_libs/210-expat.sh - 将文件中原有的expat下载地址替换为公开可用的expat 2.2.6镜像地址
- 保存文件后重新执行
./ct-ng build即可正常下载。
- 进入crosstool-ng的安装目录,找到文件
- 临时禁用方案
如果你编译的工具链不需要expat相关功能,可以执行./ct-ng menuconfig进入配置界面,在Companion libraries分类下取消expat的勾选,保存配置后重新编译即可跳过该依赖的下载步骤。
内容的提问来源于stack exchange,提问作者Daniel Walker
相关产品推荐
相关产品推荐

