diff --git a/build.sh b/build.sh index 70e94df..7bab1e1 100755 --- a/build.sh +++ b/build.sh @@ -68,6 +68,7 @@ while [[ $# -gt 0 ]]; do ;; windows/amd64) GOOS=windows GOARCH=amd64 + CGO_ENABLED=0 PLATFORM="windows-amd64" if [[ "$OUTPUT_NAME" == "yoyo" ]]; then OUTPUT_NAME="yoo-windows-amd64.exe" @@ -84,11 +85,13 @@ done 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 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 - 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 echo "Build complete: ./$OUTPUT_NAME" \ No newline at end of file diff --git a/changelog.md b/changelog.md index b53aeb6..bc1b696 100644 --- a/changelog.md +++ b/changelog.md @@ -48,6 +48,9 @@ - ✅ 跨平台编译支持 (build.sh) - ✅ CI自动构建Release +**构建改进**: +- ✅ Windows 交叉编译添加 CGO_ENABLED=0 + **构建改进**: - ✅ 扩展 build.sh 支持跨平台编译 - ✅ 添加 -h 帮助选项、-o 自定义输出文件名 diff --git a/taolun.md b/taolun.md index e7bb3ef..61d7e1e 100644 --- a/taolun.md +++ b/taolun.md @@ -960,4 +960,23 @@ go build -ldflags "-X github.com/titor/fanyi/internal/logo.version=${VERSION}" - - `changelog.md` - 版本历史整理 - `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) \ No newline at end of file