You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决openSuSE 42.2下ct-ng build时的Error 404问题?

解决crosstool-ng构建交叉编译器时的404下载错误

你遇到的问题是典型的老版本工具链配置适配问题——你用的crosstool-ng 1.21.0-4.22中预设的Linaro工具链快照链接已经失效,导致ct-ng build在下载binutils-linaro-2.25.0-2015.01-2组件时返回404错误。下面是几个可行的解决办法:

方法1:手动下载组件到缓存目录

crosstool-ng会优先检查本地缓存是否存在需要的tarball,存在的话就会跳过远程下载步骤:

  • 找到与报错中完全匹配的binutils-linaro-2.25.0-2015.01-2格式的tarball文件(通常是.tar.xz.tar.gz后缀),从Linaro官方归档仓库获取该文件。
  • 将下载好的文件放到crosstool-ng的默认缓存目录:~/.cache/ct-ng/1.21.0-4.22/,如果这个目录不存在,手动创建即可。
  • 再次执行ct-ng build,工具会直接使用本地缓存的文件,不再尝试远程下载。

方法2:修改配置中的失效链接

如果不想手动下载,可以直接修改crosstool-ng的配置,替换成有效的下载地址:

  • 执行命令ct-ng menuconfig进入图形配置界面。
  • 导航到Paths and misc options -> Download locations,找到对应binutils-linaro的下载URL配置项。
  • 将原失效的https://cbuild.validation.linaro.org/snapshots/...地址替换为Linaro归档服务器上的有效地址。
  • 保存配置后退出,重新运行ct-ng build即可。

方法3:升级crosstool-ng到新版本

你当前使用的1.21.0版本比较老旧,这类第三方源链接失效的问题在新版本中已经被维护者修复(会定期更新下载源地址)。可以考虑:

  • 从crosstool-ng官方源码编译安装最新稳定版,或者
  • 查找openSUSE的第三方软件源,获取更新版本的crosstool-ng包替换当前旧版本。

注意事项

  • 确保手动下载的tarball文件名和crosstool-ng配置中期望的文件名完全一致,否则工具还是会触发重新下载。
  • 若修改缓存目录的文件,要保证文件权限正确,让运行ct-ng的用户拥有读取权限。

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

火山引擎 最新活动