第二章:go 注意事项(各个平台编译方式)
重点注意: //函数的"{"必须和函数名在一行,换到下一行就是语法错误,强制代码风格
go mod init 《这里针对老版本》
使用go module模式新建项目时,我们需要通过go mod init 项目名
命令对项目进行初始化,该命令会在项目根目录下生成go.mod
文件。例如,我们使用hello
作为我们第一个Go项目的名称,执行如下命令。
go mod init hello
编写代码
接下来在该目录中创建一个main.go
文件:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt 包
func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}
编译
go build
命令表示将源代码编译成可执行文件。
go run main.go // 编译某个文件
go run
go run main.go
也可以执行程序,该命令本质上是先在临时目录编译程序然后再执行。
注意:我们还可以使用-o
参数来指定编译后得到的可执行文件的名字。
go build -o heiheihei.exe // windows 平台 之后执行: heiheihei.exe
go build -0 heihei // mac 平台 之后执行: ./heihei
各个平台编译方式:
Windows编译Mac可执行文件
Windows下编译Mac平台64位可执行程序:
cmd终端下执行:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
PowerShell终端下执行:
$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build
Mac编译Linux可执行文件
Mac电脑编译得到Linux平台64位可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Mac编译Windows可执行文件
Mac电脑编译得到Windows平台64位可执行程序:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux编译Mac可执行文件
Linux平台下编译Mac平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
Linux编译Windows可执行文件
Linux平台下编译Windows平台64位可执行程序:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build