Golang三个编译基本命令的使用小结
作者:魏大橙 时间:2023-08-28 05:08:03
在运行Go语言程序之前,先要将其编译成二进制的可执行文件
我们通常在编辑器编写完源码后使用go build或go run命令对GO语言程序进行编译
1、go build(编译)
作用:将Go语言程序和相关依赖编译成可执行文件
语法格式:go build 【参数】 fileName
参数:
fileName为所要编译的文件名,可以是一个或多个Go源文件名(多个文件名之间需要用空格作为分隔符)
-o:指定编译后的可执行文件名
-n:显示编译时会用到的所有命令,但不真正执行
-x:显示编译时用到的所有命令
在当前家目录下有一个demo.go的Go源程序文件(编译单个文件),无参数编译一个文件时,会在当前路径下生成该Go源程序的可执行文件,即demo
在当前路径下有两个文件,main.go文件中调用了lib.go文件中自定义的一个函数(编译多个文件),无参数编译多个文件时,会在当前路径下生成第一个Go源程序名称的可执行文件
go build编译包
在gotest目录下有一个main.go和一个mypkg目录(该目录下有一个mypkg.go)
建议mypkg.go的包名和它的目录名相一致
参数实例:
2、go run(编译并运行)
作用:编译之后立即执行Go语言程序,但是不会生成可执行文件
语法格式:go run fileName
参数:
fileName为所要编译的文件名,必须是同一main包下的所有源文件并且不能为空
3、go install(编译并安装)
作用:编译并安装源文件、软件包,即把编译后的可执行二进制文件安装到指定的目录中
go install 的编译过程有如下规律:
go install 是建立在 GOPATH 上的
GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名
GOPATH 下的 pkg 目录放置的是编译期间的中间文件
若设置了环境变量GOBIN,则会把可执行二进制文件安装到该目录,若禁用了Go module则安装到$GOPATH/pkg/$GOOS_$GOARCH下
我们知道如果在工作目录下有可执行文件时,需要./fileName来进行执行该文件而不是像使用命令那般只需输入名称不需要加上路径
当我们使用go install后,我们就可以使用命令那般使用可执行文件
来源:https://blog.csdn.net/Thewei666/article/details/129842428
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
简介Python的collections模块中defaultdict类型的用法
微信小程序学习笔记之本地数据缓存功能详解
![](https://img.aspxhome.com/file/2023/7/136127_0s.gif)
python读取mysql数据绘制条形图
![](https://img.aspxhome.com/file/2023/4/79754_0s.jpg)
python 求定积分和不定积分示例
![](https://img.aspxhome.com/file/2023/6/89336_0s.jpg)
javascript中typeof操作符和constucor属性检测
python用faker库批量生成假数据
ASP 字符串转数字格式
js中eval()函数和trim()去掉字符串左右空格应用
用Python爬取QQ音乐评论并制成词云图的实例
![](https://img.aspxhome.com/file/2023/0/99660_0s.jpg)
python将字符串转换成数组的方法
基于scrapy实现的简单蜘蛛采集程序
Django的基本运用之Django垃圾分类详解
![](https://img.aspxhome.com/file/2023/3/120903_0s.png)
python入门学习笔记分享
![](https://img.aspxhome.com/file/2023/0/117900_0s.png)
ES6新特性一: let和const命令详解
从if else到switch case再到抽象
flask框架自定义过滤器示例【markdown文件读取和展示功能】
python的绘图工具matplotlib使用实例
![](https://img.aspxhome.com/file/2023/6/62896_0s.png)
在vue中使用export default导出的class类方式
分析mysql中一条SQL查询语句是如何执行的
![](https://img.aspxhome.com/file/2023/8/96498_0s.jpg)