# Claude Code 跨平台打包：把 Go 小工具编成三种系统产物，核对架构与校验和

Go原生交叉编译三平台并检查文件头与SHA；仅Mac ARM64产物在本机执行，Linux/Windows未运行。

## 环境

- Python 3；此题标准库脚本或README指定的外部CLI。
- 安装 Go 工具链（作者使用 go1.26.2 darwin/arm64）；只在匹配主机执行对应产物。

## 启动

~~~sh
cd reference
python3 verify.py
# 运行后查看原生结果阅读器（读取records.json）
python3 -m http.server 8787
# 打开 http://127.0.0.1:8787/report.html
~~~

## 七步操作

1. 准备Go源码

输入为原创 Go 字符与行数统计 CLI，包含中文和英文两行文本。下载源码、go.mod、input.txt，保持 UTF8 字节，不用文件名猜字符数。

2. 确认平台矩阵

明确三个目标为 darwin/arm64、linux/amd64、windows/amd64，并关闭 CGO。本题使用已安装 Go 原生工具链，不需要 Claude Code 才能构建作者参考。

3. 交叉编译

分别设置 GOOS、GOARCH 后 go build -trimpath，将每个目标写到独立文件。不要反复覆盖同一个文件却只改下载名称。

4. 检查文件头

读取实际文件头：Mac产物为Mach-O、Linux为ELF、Windows为PE。结合构建目标与完整SHA256记录实际字节，发布前核对产物集合。

5. 拒绝错误输入

在本机不传输入参数时运行 CLI，必须返回退出码2并给出用法。不存在的输入文件也应报错，不要把空输出当作成功统计。

6. 运行本机产物

仅执行当前Mac ARM64产物，核对中文字符数、UTF8字节数、单词与换行数。Linux与Windows版本只完成编译和文件头检查，没有在对应系统执行。

7. 生成校验清单

运行 verify.py 可重新编译并生成清单。源码和构建流程适合交给 Claude Code 扩展；本文没有运行该账号生成会话，跨平台运行兼容性仍需目标系统验收。

## 目录身份

- starter：待完成的任务接口与原创输入，TODO不是已完成实现。
- reference：作者原生完成参考和实际产物。records.json/browser-result.json为本地实测记录，不是AI助手回复。
- TASK.md：可交给相应AI助手的原始任务合同。该助手账号生成会话未运行。

## 依赖与许可

原创教学代码以MIT许可提供。第三方项目、模型及浏览器遵循其自身许可。第三方依赖由本地安装获取，不包含node_modules、模型权重、WASM运行时、数据库、缓存或凭据。

## 官方依据

- https://go.dev/doc/install/source#environment
