当前位置: 首页 > news >正文

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 目录下面存放的是可执行文件
http://www.lryc.cn/news/273280.html

相关文章:

  • 石头剪刀布游戏 - 华为OD统一考试
  • 【北亚服务器数据恢复】ZFS文件系统服务器ZPOOL下线的数据恢复案例
  • C# 反射的终点:Type,MethodInfo,PropertyInfo,ParameterInfo,Summry
  • 2020年认证杯SPSSPRO杯数学建模D题(第一阶段)让电脑桌面飞起来全过程文档及程序
  • 谷歌推出创新SynCLR技术:借助AI生成的数据实现高效图像建模,开启自我训练新纪元!
  • Vue2中使用echarts,并从后端获取数据同步
  • 【Redux】自己动手实现redux-thunk
  • ElasticSearch使用Grafana监控服务状态-Docker版
  • VS Code 如何调试Python文件
  • day06、SQL语言之概述
  • 3D目标检测(教程+代码)
  • 让设备更聪明 |启英泰伦离线自然说,开启智能语音交互新体验!
  • React Hooks之useState、useRef
  • 提供电商Api接口-100种接口,淘宝,1688,抖音商品详情数据安全,稳定,支持高并发
  • git的使用 笔记1
  • 基于SpringBoot的医疗挂号管理系统
  • prometheus与zabbix监控的对比介绍
  • 详解全志R128 RTOS安全方案功能
  • 【MySQL】WITH AS 用法以及 ROW_NUMBER 函数 和 自增ID 的巧用
  • 基于SpringBoot的在线考试系统源码和论文
  • 基于Spring Boot的美妆分享系统:打造个性化推荐、互动社区与智能决策
  • Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览
  • 前端实战第一期:悬浮动画
  • Python学习笔记(五)函数、异常处理
  • Vue实现模糊查询
  • 【十一】【C++\动态规划】1218. 最长定差子序列、873. 最长的斐波那契子序列的长度、1027. 最长等差数列,三道题目深度解析
  • 主板部件
  • 2023年度学习总结
  • 服务器感染了.kann勒索病毒,如何确保数据文件完整恢复?
  • 使用results.csv文件数据绘制mAP对比图