From 2634fe43ff118b898b17db5fb47e860c2c9c11e4 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:45:12 +0800 Subject: [PATCH] README.md --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/README.md b/README.md index 492e939..0249386 100644 --- a/README.md +++ b/README.md @@ -563,6 +563,60 @@ _**CloudflareST OpenWrt 原生编译版本 [#64](https://github.com/XIU2/Cloudfl **** +## 手动编译 + +
+「 点击展开 查看内容 」 + +**** + +为了方便,我是在编译的时候将版本号写入代码中的 version 变量,因此你手动编译时,需要像下面这样在 `go build` 命令后面加上 `-ldflags` 参数来指定版本号: + +```bash +go build -ldflags "-s -w -X main.version=v2.3.3" +# 在 CloudflareSpeedTest 目录中通过命令行(例如 CMD、Bat 脚本)运行该命令,即可编译一个可在和当前设备同样系统、位数、架构的环境下运行的二进制程序(Go 会自动检测你的系统位数、架构)且版本号为 v2.3.3 +``` + +如果想要在 Windows 64位系统下编译**其他系统、架构、位数**,那么需要指定 **GOOS** 和 **GOARCH** 变量。 + +例如在 Windows 系统下编译一个适用于 **Linux 系统 amd 架构 64 位**的二进制程序: + +```bat +SET GOOS=linux +SET GOARCH=amd64 +go build -ldflags "-s -w -X main.version=v2.3.3" +``` + +例如在 Linux 系统下编译一个适用于 **Windows 系统 amd 架构 32 位**的二进制程序: + +```bash +GOOS=windows +GOARCH=386 +go build -ldflags "-s -w -X main.version=v2.3.3" +``` + +> 可以运行 `go tool dist list` 来查看当前 Go 版本支持编译哪些组合。 + +**** + +当然,为了方便批量编译,我会专门指定一个变量来为版本号,后续编译就直接调用该版本号变量即可。 + +```bat +:: Windows 系统下是这样: +SET version=v2.3.3 +go build -ldflags "-s -w -X main.version=%version%" +``` + +```bash +# Linux 系统下是这样: +version=v2.3.3 +go build -ldflags "-s -w -X main.version=${version}" +``` + +
+ +**** + ## License The GPL-3.0 License. \ No newline at end of file