当前位置:网站首页>go语言笔记(4)go常用管理命令
go语言笔记(4)go常用管理命令
2022-07-04 19:03:00 【fiveym】
介绍
在Go语言中,我们很多操作都是通过 go 命令进行的,比如我们要执行go文件的编译,就需要使用 go build 命令,除了 build 命令之外,还有很多常用的命令,这一次我们就统一进行介绍,对常用命令有一个了解,这样我们就可以更容易的开发我们的Go程序了。
二级标题
go version: 获取Go版本
go env: 查看Go环境变量
go help: 查看Go帮助命令
go get: 获取远程包(需提前安装git或hg)
go build: 编译并生成可执行程序
go run: 直接运行程序
go fmt: 格式化源码
go install: 编译包文件以及整个程序
go test: go原生提供的单元测试命令
go clean: 移除当前源码包和关联源码包里编译生成的文件
go tool: 升级Go版本时,修复旧版代码
godoc -http:80:开启一个本地80端口的web文档
gdb 可执行程序名:调试Go编译出来的文件
使用格式:
go command [arguments]``` ## go bulid go build ,它可以启动编译,把我们的包和相关的依赖编译成 一个可执行的文件 。 如果是main包,执行go build之后,会在当前目录下生成一个可执行文件。 示例: ```go
// 编译当前目录为一个可执行文件
go build
// 编译当前目录为一个可执行文件
go build .
// 编译hello.go文件为一个可执行文件
go build hello.g
如果go bulid报错
/usr/lib/go-1.10/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/tmp/go-link-008006128/000026.o: In function _cgo_05dc84caff82_Cfunc_sysconf': /tmp/go-build/cgo-gcc-prolog:32: multiple definition of_cgo_05dc84caff82_Cfunc_sysconf’ /tmp/go-link-008006128/000024.o:/tmp/go-build/cgo-gcc-prolog:32: first defined here collect2: error: ld returned 1 exit status
解决方法:
linux: export CGO_ENABLED=0
windows : cmd: set CGO_ENABLED=0
windows : powershell:$env:CGO_ENABLED=0
go run
go bulid是先编译,然后我们在执行可以执行文件来执行我们的程序需要两步
go run 这个命令就是可以把这两步合成一步的命令,节省我们录入的时间
命令格式:
```go
go run 文件名.go
示例:
go run main.go
go install
go install命令和go bulid 命令类似用来生成项目可执行文件,不过它在编译后,吧生成的可执行文件或者库安装到对应的目录下,以供使用。
可执行文件安装到: $GOPATH/bin/
可引用库安装到: $GOPATH/pkg/
注意: 没有开启go mod时,使用上述命令需要配置GOPATH,否则会报:no install location。
go get
go get用来获取远程仓库中的包,使用该命令前必须配置GOPATH,而且依据不同的源码网站,还要安装不同的版本管理工具,比如从github上使用go get需要额外安装git。
go get本质上可以理解为通过源码工具clone下代码后,执行了go install。
命令格式:
下载包:添加 -u 参数可以自动更新包和依赖
go get github.com/**/**
使用安装的包
import "github.com/****/****"
如果下载慢,记得配置goproxy
// 设置module管理模式
$ go env -w GO111MODULE=on
//设置下载源
$ go env -w GOPR
go fmt
go fmt命令可以格式化代码文件
使用go fmt命令,其实是调用了gofmt,而且需要参数-w,否则格式化结果不会写入文件
//命令格式:
go fmt -w 文件名.go
//示例:格式化整个项目
gofmt -w -l src
//常见参数:
-l: 显示那些需要格式化的文件
-w: 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出。
-r: 添加形如"a[b:len(a)] -> a[b:]"的重写规则,方便我们做批量替换
-s: 简化文件中的代码
-d: 显示格式化前后的diff而不是写入文件,默认是false
-e: 打印语法错误到标准输出。无此参数只会打印不同行的前10个错误。
go tool
go tool下聚集了很多命令,主要有2个,即fix和vet:
go tool fix .:用来修复以前老版本的代码到新版本
go tool vet directory|files:分析当前目录的代码是否正确
边栏推荐
- 九齐单片机NY8B062D单按键控制4种LED状态
- Huawei Nova 10 series supports the application security detection function to build a strong mobile security firewall
- 解密函数计算异步任务能力之「任务的状态及生命周期管理」
- Oracle database, numbers Force 2 decimal places to display-Alibaba Cloud
- Kotlin classes and objects
- In operation (i.e. included in) usage of SSRs filter
- Chrome development tool: what the hell is vmxxx file
- B2B mall system development of electronic components: an example of enabling enterprises to build standardized purchase, sale and inventory processes
- Basic use of kotlin
- 实践示例理解js强缓存协商缓存
猜你喜欢
什么叫内卷?
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
Pointnet / pointnet++ point cloud data set processing and training
NLP、视觉、芯片...AI重点方向发展几何?青源会展望报告发布[附下载]
How to adapt your games to different sizes of mobile screen
一文搞懂Go语言中文件的读写与创建
Related concepts of federal learning and motivation (1)
Selected review | machine learning technology for Cataract Classification / classification
QT writing the Internet of things management platform 38- multiple database support
AP8022开关电源小家电ACDC芯片离线式开关电源IC
随机推荐
软件客户端数字签名一定要申请代码签名证书吗?
漫谈客户端存储技术之Cookie篇
YOLOv5s-ShuffleNetV2
[in-depth learning] review pytoch's 19 loss functions
ACM组合计数入门
Understand the reading, writing and creation of files in go language
Ziguang zhanrui completed the first 5g R17 IOT NTN satellite on the Internet of things in the world
Flet教程之 05 OutlinedButton基础入门(教程含源码)
Small hair cat Internet of things platform construction and application model
What is involution?
Kotlin cycle control
What is the application technology of neural network and Internet of things
【深度学习】一文看尽Pytorch之十九种损失函数
上线首月,这家露营地游客好评率高达99.9%!他是怎么做到的?
Flet教程之 08 AppBar工具栏基础入门(教程含源码)
Win11无法将值写入注册表项如何解决?
实战模拟│JWT 登录认证
华为nova 10系列支持应用安全检测功能 筑牢手机安全防火墙
node强缓存和协商缓存实战示例
Employment prospects and current situation of Internet of things application technology