fix: Windows 交叉编译添加 CGO_ENABLED=0
All checks were successful
Release / build (push) Successful in 6m28s
All checks were successful
Release / build (push) Successful in 6m28s
This commit is contained in:
7
build.sh
7
build.sh
@@ -68,6 +68,7 @@ while [[ $# -gt 0 ]]; do
|
|||||||
;;
|
;;
|
||||||
windows/amd64)
|
windows/amd64)
|
||||||
GOOS=windows GOARCH=amd64
|
GOOS=windows GOARCH=amd64
|
||||||
|
CGO_ENABLED=0
|
||||||
PLATFORM="windows-amd64"
|
PLATFORM="windows-amd64"
|
||||||
if [[ "$OUTPUT_NAME" == "yoyo" ]]; then
|
if [[ "$OUTPUT_NAME" == "yoyo" ]]; then
|
||||||
OUTPUT_NAME="yoo-windows-amd64.exe"
|
OUTPUT_NAME="yoo-windows-amd64.exe"
|
||||||
@@ -84,11 +85,13 @@ done
|
|||||||
|
|
||||||
echo "Building yoyo version: $VERSION"
|
echo "Building yoyo version: $VERSION"
|
||||||
|
|
||||||
|
BUILD_CMD="go build -buildvcs=false -ldflags \"-s -w -X github.com/titor/fanyi/internal/logo.version=${VERSION}\" -o \"$OUTPUT_NAME\" ./cmd/yoyo"
|
||||||
|
|
||||||
if [ -n "$GOOS" ]; then
|
if [ -n "$GOOS" ]; then
|
||||||
echo "Target: $PLATFORM"
|
echo "Target: $PLATFORM"
|
||||||
go build -buildvcs=false -ldflags "-s -w -X github.com/titor/fanyi/internal/logo.version=${VERSION}" -o "$OUTPUT_NAME" ./cmd/yoyo
|
eval CGO_ENABLED=${CGO_ENABLED:-0} $BUILD_CMD
|
||||||
else
|
else
|
||||||
go build -buildvcs=false -ldflags "-s -w -X github.com/titor/fanyi/internal/logo.version=${VERSION}" -o "$OUTPUT_NAME" ./cmd/yoyo
|
eval CGO_ENABLED=${CGO_ENABLED:-0} $BUILD_CMD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Build complete: ./$OUTPUT_NAME"
|
echo "Build complete: ./$OUTPUT_NAME"
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
- ✅ 跨平台编译支持 (build.sh)
|
- ✅ 跨平台编译支持 (build.sh)
|
||||||
- ✅ CI自动构建Release
|
- ✅ CI自动构建Release
|
||||||
|
|
||||||
|
**构建改进**:
|
||||||
|
- ✅ Windows 交叉编译添加 CGO_ENABLED=0
|
||||||
|
|
||||||
**构建改进**:
|
**构建改进**:
|
||||||
- ✅ 扩展 build.sh 支持跨平台编译
|
- ✅ 扩展 build.sh 支持跨平台编译
|
||||||
- ✅ 添加 -h 帮助选项、-o 自定义输出文件名
|
- ✅ 添加 -h 帮助选项、-o 自定义输出文件名
|
||||||
|
|||||||
19
taolun.md
19
taolun.md
@@ -960,4 +960,23 @@ go build -ldflags "-X github.com/titor/fanyi/internal/logo.version=${VERSION}" -
|
|||||||
- `changelog.md` - 版本历史整理
|
- `changelog.md` - 版本历史整理
|
||||||
- `build.sh` - 跨平台编译脚本
|
- `build.sh` - 跨平台编译脚本
|
||||||
|
|
||||||
|
**关联版本**: [changelog.md#v1.2.0](changelog.md#v120-2026-04-08)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### [2026-04-08] Windows 交叉编译修复
|
||||||
|
|
||||||
|
**问题**: 交叉编译的 Windows 版本在 Windows 上提示"不支持16位应用程序"
|
||||||
|
|
||||||
|
**原因**:
|
||||||
|
- Linux CI 交叉编译 Windows 时,缺少 `CGO_ENABLED=0` 参数
|
||||||
|
- 原生编译(go build 在 Windows 上)没有这个问题
|
||||||
|
|
||||||
|
**解决方案**:
|
||||||
|
- 在 build.sh 的 `windows/amd64` 分支添加 `CGO_ENABLED=0`
|
||||||
|
- 统一使用 `CGO_ENABLED=0` 进行构建
|
||||||
|
|
||||||
|
**相关文件**:
|
||||||
|
- `build.sh` - 添加 CGO_ENABLED=0
|
||||||
|
|
||||||
**关联版本**: [changelog.md#v1.2.0](changelog.md#v120-2026-04-08)
|
**关联版本**: [changelog.md#v1.2.0](changelog.md#v120-2026-04-08)
|
||||||
Reference in New Issue
Block a user