目录
1.Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
2.Linux 下编译 Mac 和 Windows 平台64位可执行程序:
Go项目结构
在进行Go语言开发的时候,我们的代码总是会保存在$GOPATH/src
目录下。在工程经过go build
、go install
或go get
等指令后,会将下载的第三方包源代码文件放在$GOPATH/src
目录下, 产生的二进制可执行文件放在 $GOPATH/bin
目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg
下。
如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src
目录的源代码即可。bin
和 pkg
目录的内容无需版本控制。
1. 适合个人开发者
我们知道源代码都是存放在GOPATH
的src
目录下,那我们可以按照下图来组织我们的代码。
2. 目前流行的项目结构
Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名
来作为包名的前缀,这样就不担心项目名冲突的问题了。
因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。
3. 适合企业开发场景
Go文件编译
1.文件编译运行
方式1:
第一步: go mod init 目录名
产生上图中序号1文件:go.mod
第二步目录下: go build
产生上述图中序号2文件:helloworld
第三步运行:编译后文件
拓展:
我们还可以使用-o
参数来指定编译后得到的可执行文件的名字。
# go build -o 编译后文件名
windows平台:
go build -o heiheihei.exe
macos平台:
go build -o heiheihei
方式2:
go run 文件名.go
方式3:
直接右键运行
Go跨平台编译
默认我们go build
的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可:
-
SET CGO_ENABLED=0 // 禁用CGO
-
SET GOOS=linux // 目标平台是linux
-
SET GOARCH=amd64 // 目标处理器架构是amd64
1.Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
2.Linux 下编译 Mac 和 Windows 平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
3.Windows下编译Mac平台64位可执行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
4. 在win平台上编译成linux平台可执行文件
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
go build