golang之常用命令

golang常用操作与命令

1.执行golang文件

go run hello_world.go

 

2.编译成可执行文件(交叉编译)

go build hello_world

则会生成hello_world可执行文件,即可直接运行
./hello_world


不同环境下的编译需要修改对应参数:
GOOS=linux
GOARCH=amd64


指定文件名称
go build -o hello.exe # 如果是window下的话 需要加上后面的后缀名

windows下设置方式:
set GOOS=windows; set GOARCH=amd64; go build  -v -ldflags "-w -s" -o golang-demo_windows.exe ./cmd/app/main.go

可能这种方式还是会有问题, 导致打包完成的二进制文件, 无法再Linux下正常执行
需要使用: go env -w GOOS=linux 进行设置相关参数即可, 打包完成之后, 记得改回来就行

-v: 打印编译过程
-ldflags: 链接选项,编译时候可以传入一些值作为配置golang应用
  -w: 去除调试信息
-s: 去除符号表
-X: 注入变量,编译时赋值
-w -s 一般同时使用,用来减少可执行文件袋额体检, 但删除了调试信息,可执行文件无法使用gdb/dlv调试

 

3. 

go  test  ./...
go list ./...

这里的三个点作为通配符,标识当前目录及其子目录中的所有软件包

 

4.设置环境变量

// 设置代理
$env:GOPROXY = "https://goproxy.io,direct"


// 或者使用 env -w
go env -w GOPROXY="https://goproxy.io,direct"

常用环境变量:

 

GOROOT
GOROOT 表示 Go 语言的安装目录。
GOROOT 的作用是用来索引 Go 语言的安装目录下的相关资源,比如 bin 目录的工具(如 go 命令),src 目录下的源码等。


GOPATH
GOPATH 用于指定我们的开发工作区,可以有多个。
按照 Go 开发规范,GOPATH 目录下一般分为三个子目录 src,pkg,bin。
	src 目录存放我们需要开发的项目源码,
	pkg 存放依赖的包和编译后的静态库文件,
	bin 放源代码编译后台的可执行文件。


GO111MODULE
在 go1.11 的时候推出了这个 go modules 来解决依赖管理的问题。
通过变量 GO111MODULE 来控制 Go Module 的开启和关闭,取值 off、on 或 auto。
从 Go 1.13 开始,Go Module 作为 Golang 中的标准包管理器。


GOPROXY
go get 下载依赖时使用的代理地址列表,使用逗号 (,) 或竖杠 (|) 分隔。
当用 go 命令查找依赖模块时,它会按顺序访问 GOPROXY 列表中的每个代理,直到收到成功的响应或出现终端错误。
GOPROXY 中可能会存在两个关键字来代替代理URL:
off:不允许从任何源下载依赖的模块
direct: 直接从版本控制存储库下载,而不是使用模块代理
GOPROXY 缺省值为https://proxy.golang.org,direct。


GOPRIVATE
go get 通过代理服务拉取仓库时,因为代理服务不可能访问到私有仓库(一般为企业内部代码管理平台),会出现 404 错误。
go1.13 版本提供了一个方便的解决方案:GOPRIVATE 环境变量。


GOBIN
用于存储我们使用go install命令安装的程序。
如果没有设置 GOBIN,程序一般会安装到为GOPATH/bin目录。


GOOS
当前的操作系统。例如 linux、darwin、windows、netbsd、freebsd、openbsd、solaris、plan9 等。
注意 mac os对应的值是 darwin。


GOARCH
表示 CPU 架构。如 amd64、386、arm、ppc64 等。

  

 

posted @ 2020-06-27 21:31  X-Wolf  阅读(371)  评论(0)    收藏  举报