0%

golang笔记

会一点python和js,但是这类解释型语言需要安装庞大的环境,无法适用所有架构或机器,现从零开始学golang,为了能够编写一些自己的小工具,使其在任何架构机器都能运行!

最简代码

1
2
3
4
5
6
7
8
9
10
11
package main

import (
"fmt"
)

func main(){
var age = 18
fmt.Println("Hello Word!")
fmt.Println(age)
}

直接编译运行

1
go run main.go

编译二进制

1
go build -trimpath -ldflags="-s -w" main.go

Linux下交叉编译

1
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" main.go

windows下cmd交叉编译

1
2
3
4
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -trimpath -ldflags="-s -w" main.go

查看支持交叉编译的所有架构类型

1
go tool dist list

目前支持如下架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/amd64
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
freebsd/arm64
freebsd/riscv64
illumos/amd64
ios/amd64
ios/arm64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/loong64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
openbsd/ppc64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
wasip1/wasm
windows/386
windows/amd64
windows/arm
windows/arm64