目录
打包exe
Windows打包
Linux打包
Mac打包
赋值
工程示例-文件解压
工程示例-文字信息转发钉钉机器人(模块)
下载golang安装包,msi文件简单安装
https://go.dev/dl/
如果用于开发建议低版本,不超过go 1.17.8版本,避开高版本和IDE“Go SDK不是有效主路经”
go语言下载包配置国内镜像指令
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
go build main.go,生成本地exe文件
编译Windows 64位可执行程序:
# X86
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
# ARM
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build main.go
cd e:\Users\cing\SourceCode\MyProject\GenToken
go build main.go
#举例:go语言写的一个授权工具需要转为Windows可执行程序,执行后编译本地生成main.exe重命名为GenToken.exe即可
go build 成不同环境的方法:mac、linux、windows
Golang 在 Mac、Linux、Windows 下如何交叉编译
编译 Linux 64位可执行程序:
# X86
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
# ARM
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build main.go
编译 MacOS 64位可执行程序
# X86
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# ARM
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build main.go
BTW补充
Windows 下编译 Mac 64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
Windows 下编译Linux arm64位可执行程序
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=arm64
go build main.go
gcc报错问题,安装mingw-w64,配置环境变量
Goland新建时无GOROOT且无法识别
Goland 2019下载和安装(带破解补丁和汉化包)
局部变量初始化类型赋值 与 常规赋值 golang中 = 和 :=区别
:= 给某变量的第一次赋值,初始化
= 变量的非第一次赋值
== 等于操作符
Bandizip命令行参数
将在E:\ziptest\test.7z通过Bandizip自动静默解压到E:\ziptest\test
Bandizip需要预先手动安装
package main
import (
"fmt"
"os/exec"
)
func main( ) {
fmt.Printf("Run mycmd!")
unzipfile := `E:\ziptest\test.7z`
mycmd := exec.Command("Bandizip.exe", "x","-y","-target:auto",unzipfile)
fmt.Println(fmt.Sprintf(`/c %s`, unzipfile))
if err := mycmd.Run(); err != nil {
fmt.Println("Error: ", err)
}
}
其它go源码解压推荐go-unarr
GitHub - gen2brain/go-unarr: Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives)
go语言编写的钉钉群机器人
import (
"fmt"
"net/http"
"strings"
"strconv"
)
func main() {
toDintalk(tk)
}
func toDintalk(token string) {
//From Here Edited By cy202212
var site string = `https://oapi.dingtalk.com/robot/send?access_token=f5eexxxxxxxxxxxxxxxxxxxxxxxxxxc184fd98c`
var text_content0 string = `{"msgtype": "text",
"text": {
"content":"`+"生成新的Token:\n"+ token +"\n有效期:"+ strconv.Itoa(day) +"天"+ strconv.Itoa(hour) +"小时"+ strconv.Itoa(min) + "分钟"+`"
}
}`
client := &http.Client{}
req, err := http.NewRequest("POST", site, strings.NewReader(text_content0))
if err != nil {
// handle error
}
req.Header.Set("Content-Type", "application/json; charset=utf-8")
resp, err := client.Do(req)
defer resp.Body.Close()
return
}
相关
两行代码实现Golang发送钉钉机器人消息
golang中将Int转换为string