GoLand 环境问题
$GOPATH/go.mod exists but should not goland
设置好GOPATH目录,保证GOPATH目录下没有go.mod即可!
然后重启你的GoLand。
在控制台输入任意go指令 例如go env
如果没有再报错则问题解决。
编译 go build
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
控制台可以通过到项目目录下 输入 go build
构建出一个 exe 可执行文件!不依赖于环境,可以直接在本类型操作系统下直接执行。
使用
go build
- 在项目目录下执行
go build
- 在其他路径下执行
go build
,需要在后面加上项目的路径(项目路径从GOPATH/src后开始,编译之后的可执行文件就保存在当前目录下) go build -o hello.exe
构建且指定构建后的可执行文件的名字
运行 go run
直接输入 go run go文件
即可执行对应go文件
不推荐这样使用,建议使用go build
先构建可执行文件再去执行。
编译并拷贝 go install
- 先编译得到一个可执行文件
- 将可执行文件拷贝到
GOPATH/bin
目录下
作用:若系统环境变量配置了GOPATH/bin
,则可以直接在控制台任意目录下执行该文件
跨平台编译(交叉编译)
默认情况下,go build
构建的可执行文件都是当前操作系统的可执行文件,如果我想在windows下编译一个linux下可执行文件,该如何做呢?
指定目标操作系统的平台以及处理器架构
SET CGO_enabled = 0 # 禁用CGO
SET GOODS = linux # 设置目标平台 linux
SET GOARCH = amd64 # 目标处理器架构是amd64
然后执行go build
生成的可执行文件就是能够在目标平台运行的可执行文件了。
- Mac下
CGO_ENABLE = 0 GOOS = linux GOARCH = amd64 go build # linux CGO_ENABLE = 0 GOOS = windows GOARCH = amd64 go build # windows
- Linux下
CGO_ENABLE = 0 GOOS = darwin GOARCH = amd64 go build # mac CGO_ENABLE = 0 GOOS = windows GOARCH = amd64 go build # windows
- Windows下
# mac SET CGO_enabled = 0 SET GOODS = darwin SET GOARCH = amd64 # linux SET CGO_enabled = 0 SET GOODS = linux SET GOARCH = amd64