解决 xgo 旧版本无法编译的问题
由于这几天帮一个部门做桌面工具软件需要兼容 win7 (已经2026年了啊!),需要使用go-1.20 (最后一个支持win7的版本),然而使用 xgo 指定使用1.20低版本时遇到了拉取不到镜像的问题。
编译脚本采用以下方式时,提示 techknowlogick/xgo:go-1.20.14 找不到
$XGO_CMD \
--go go-1.20.14 \
--targets=windows/386 \
--dest="$OUTPUT_DIR" \
--trimpath \
--ldflags="$LDFLAGS" \
-buildvcs=false \经过分析发现,实际上旧版本的镜像在 ghcr.io/techknowlogick/xgo:go-1.20.14 有构建,所有我采取了以下方法预先拉取镜像并改名来兼容:
if [[ "$(docker images -q ghcr.io/techknowlogick/xgo:go-1.20.14 2> /dev/null)" == "" ]]; then
echo "Image ghcr.io/techknowlogick/xgo:go-1.20.14 not found. Pulling..."
docker pull techknowlogick/xgo:go-1.20.14
docker tag techknowlogick/xgo:go-1.20.14 ghcr.io/techknowlogick/xgo:go-1.20.14
else
echo "Image ghcr.io/techknowlogick/xgo:go-1.20.14 found."
fi提了个Issues,建议官方对 xgo 使用的 go 版本进行判断,尝试从 ghcr.io/techknowlogick/xgo 直接拉取或分新旧版本进行容错处理。
顺便水一篇
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »