Go语言中关于go get, go install, go build, go run指令

go get

  • go get 它会执行两个操作
    • 第一个, 是先将远程的代码克隆到Go Path的 src 目录
    • 那二个, 是执行go install命令
      • 那如果指定的包可以生成二进制文件
      • 那它就会把这个二进制文件保存到这个 Go Path 的bin目录下面
      • 这是 go install 命令执行的操作
  • 如果只需要下载包,不执行go install呢?
    • 那我们可以指定这个 -d 的参数
    • go get 只执行下载操作,不执行安装操作

go install

  • 如果go指定的包可以生成可执行的二进制文件
  • 那么go install会将生成的可执行的二进制文件,拷贝到这个 Go Path的 bin 目录下面
  • 那如果是一个普通包,它就会将编译生成的 .a 结尾的文件 放到这个Go Path 的 pkg 目录
    • 相当于编译缓存来提升后续的编译速度
  • 怎么去判断一个包能不能生成可执行的二进制文件
    • 在go语言中只有在main包中呢存在main函数的情况下才能生成可执行的文件
  • 注意事项
    • go install 是建立在Go Path的基础上的, 它是无法在独立的目录中,使用这个go install 的
    • go install 生成的可执行文件的名称,与包名是一致的
    • go install 输出的目录是不通过使用命令来指定的

go get 与 go install 的区别

  • 既然 go get 已经包含了go install的操作,为什么还需要 go install
  • go get 的第一步是下载远程的依赖包, 如果你想使用本地的版本,就不需要下载了
  • 这个时候就可以直接使用 go install
  • 需要注意的是
  • 在go的1.15版本以后, 如果没有本地包
  • go install 也会从远程下载依赖包

go build

  • go build 执行后默认会在当前目录下编译生成可执行文件
    • 也可以通过参数去指定路径
  • 跟 go install 不同的是, go build 不会将任何可执行文件复制到 Go Path 的bin目录下面
  • 而 go install 会做这样一个操作

go run

  • go run命令是用来编译并运行go文件的
    • 通常它是在开发过程中的一些测试的场景下会使用
  • go run 是不依赖 Go Pass 的
  • 只能编译可执行的 go文件
    • 即文件中包含main包和main方法
    • 非可执行的go文件使用go run执行会报错

关于 Go Path 目录

  • Go Path 下面三个目录
    • src下面存放的是源代码的文件
    • pkg 下面存放的是编译后的文件
    • bin 目录下面存放的是可执行文件
相关推荐
搞一搞汽车电子10 分钟前
S32K3平台eMIOS 应用说明
开发语言·驱动开发·笔记·单片机·嵌入式硬件·汽车
总有刁民想爱朕ha1 小时前
车牌模拟生成器:Python3.8+Opencv代码实现与商业应用前景(C#、python 开发包SDK)
开发语言·python·数据挖掘
ifanatic1 小时前
[每周一更]-(第159期):Go 工程师视角:容器化技术(Docker/Kubernetes)与CI/CD流程的应用场景
docker·golang·kubernetes
小菜全2 小时前
uniapp新增页面及跳转配置方法
开发语言·前端·javascript·vue.js·前端框架
人衣aoa2 小时前
Python编程基础(八) | 类
开发语言·python
老青蛙2 小时前
权限系统设计-用户设计
后端
晚云与城2 小时前
今日分享:C++ Stack和queue(栈与队列)
开发语言·c++
小莞尔2 小时前
【51单片机】【protues仿真】基于51单片机停车场的车位管理系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
张烫麻辣亮。2 小时前
golang-gin包
开发语言·golang·gin
echoyu.2 小时前
消息队列-初识kafka
java·分布式·后端·spring cloud·中间件·架构·kafka