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

Go语言--编译与工具 1 编译工具 Go语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具等应有尽有。 在Go语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的工作。基准测试提供可自定义的计时器和一整套基准测试算法,能方便快速地分析一段代码可能存在的CPU耗用和内存分配问题。性能分析工具可以将程序的CPU耗用、内存分配、竞态问题以图形化方式展现出来。 1.1 编译(go build) Go语言中使用 go build 命令将.go源码编译为可执行文件。g 阅读详情

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 目录下面存放的是可执行文件
GO语言基础教程(194)Go编译与测试工具之go get命令:Go语言黑魔法:一键召唤第三方依赖的go get命令 本篇深度解析了Go语言中go get命令的使用秘籍。从启用Go Modules到精准控制版本,从基础获取到复杂项目管理,通过生动比喻和实战示例,帮你彻底掌握这一核心工具,轻松管理Go项目依赖,提升开发效率。 阅读详情

相关推荐

Go环境配置与执行原理:从go run到生产部署的底层逻辑

Go语言不是简单的脚本式编程,而是一套以`go`命令为核心的自洽构建系统。其执行模型融合编译、链接与即时运行,`go run`本质是内存中完成37步原子操作的调试快键,而`go build`才是生产部署的可靠起点。理解`GOROOT`与`GOPATH`的路径契约、`fmt`包所承载的I/O错误处理范式,以及模块化依赖管理机制,是规避`cannot find package`、`no go files listed`等高频报错的关键。本文聚焦Go开发环境的底层设计逻辑,覆盖Linux/macOS/Window

weixin_34234829的博客 362

一、Go基础知识19、import详解、go get命令详解、go install命令详解以及两种命令的区别

GO:import、go get、go install详解及区别

风不归的乐园 4379

Go语言注释不是废话:结构化注释与工具链协同原理

Go语言注释是嵌入源码的结构化元数据,而非普通文本说明。其核心原理在于词法分析阶段即被解析为AST节点的附属信息,并由go/parser、go/doc、gopls等工具链组件协同消费。这种设计赋予注释机器可读性与工程约束力,支撑API文档生成、IDE智能提示、静态分析校验等关键技术价值。典型应用场景包括godoc服务部署、VS Code悬停提示、gopls跳转失效排查及跨平台构建一致性保障。尤其在go环境搭建、gopls配置、go doc调试等高频实践中,注释格式合规性直接决定开发体验质量。本文聚焦注释作为

weixin_34377919的博客 359

go get命令详解

go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]

陈旭猿的博客 1万+

Go语言导出机制:首字母规则与包可见性本质

在Go语言中,'私有/公有'并非传统OOP的访问控制概念,而是由编译期决定的导出(exported)与未导出(unexported)机制——其唯一判定标准是标识符首字母是否为Unicode大写字母。该规则作用于函数、变量、结构体字段、方法乃至嵌套类型,构成Go模块系统最底层的封装契约。它不依赖运行时反射、IDE智能提示或作用域嵌套,而是在词法分析阶段即固化符号可见性,从而保障API稳定性、构建确定性和工具链可预测性。理解这一机制,是掌握Go包设计、避免跨包引用错误、规范internal目录使用及编写可维护A

weixin_30367873的博客 784

基于ROS2与大语言模型实现自然语言控制Go2机器狗仿真

机器人仿真技术为算法验证与逻辑测试提供了安全、可控的虚拟沙盒环境,是机器人开发流程中不可或缺的一环。其核心原理在于通过物理引擎高保真地模拟机器人动力学与传感器数据,从而在无需实体硬件的情况下进行高效迭代。结合自然语言处理技术,尤其是大语言模型,能够将人类直观的指令转化为机器可执行的结构化任务描述,这极大地降低了机器人编程与交互的门槛。这种技术组合的价值在于,它使得开发者能够聚焦于高层任务逻辑而非底层控制细节,显著加速了从创意到原型验证的进程。在应用场景上,这为服务机器人、家庭助手等需要人机自然交互的领域提供

weixin_33835103的博客 444

Go get命令详解(全)

这里写自定义目录标题Go get 命令详解(全)功能新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Go get 命令详解(全) Go版本:1.15.3 格式: go get [-d] [-t] [-u] [-v] [-

Ti-蜗牛的博客 2万+

Go语言注释规范:从文档到工程基础设施的完整指南

Go注释远不止代码说明,而是驱动godoc生成、CI校验、pkg.go.dev排名和工具链解析的核心基础设施。其本质是Go‘约定优于配置’哲学的文本化体现,遵循严格的语法归属规则(如//必须紧贴导出标识符)、文档协议(包注释三行结构、段落折叠)与工具语义(//go:build、//go:generate)。高质量注释直接影响API可发现性、错误处理可靠性及跨平台构建稳定性,尤其在微服务、CLI工具和SDK开发中构成基础工程能力。本文系统梳理注释在语法层、文档层、工具链层和生态层的四重作用机制,并提供可落地的

weixin_30599769的博客 563

go语言基本概念大集合,持续更新,go build,go get,go install,go run

环境变量:GOROOT 和 GOPATH GOROOT 就是go的安装路径 /usr/local/go/bin GOPATH 工作目录,编译后二进制的存放目的地和import包时的搜索路径,如: /root/go GOPATH目录约定有三个子目录 src存放源代码(比如:.go .c .h .s等) ,按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。 pkg编译时生成的中间文件(比如:.a),golang编译包时 b.

Learning by doing 1110

Go语言项目源码编译实战:从环境配置到SSB构建全流程解析

在软件开发中,源码编译是深入理解项目架构、实现定制化构建的关键环节。其核心原理在于通过编译器将源代码转换为目标平台可执行的二进制文件,这一过程赋予开发者对最终产物的完全控制权,便于进行性能优化、安全审计和跨平台适配。从技术价值看,掌握源码编译能力不仅能提升对依赖管理和构建链条的认知,更是实现持续集成、容器化部署的工程基础。尤其在分布式系统、网络协议等场景中,如SSB(Secure Scuttlebutt)这类依赖特定加密库的Go项目,正确处理CGO绑定和系统级依赖成为编译成功的关键。本文将以SSB的Go实现

快马扬鞭须努力! 402

Go团队规模化落地的四大工程支柱

Go语言以语法简洁著称,但其工程化落地远不止于安装编译器或运行Hello World。核心在于理解模块化(module)机制与依赖管理原理,通过可复现构建、统一工具链和自动化规范保障协作确定性。技术价值体现在降低CI失败率、压缩新人上手时间、提升二进制可审计性;典型应用场景包括微服务重构、数据管道重写及云原生基础设施建设。实践中,‘go环境配置’与‘go mod download’等高频问题,本质是环境治理与依赖信任链缺失所致——本文聚焦团队级Go工程化的四个关键支柱:环境治理、代码规范、依赖管理与认知对齐

weixin_33709590的博客 417

Go语言开发--基本命令及使用

Go命令一般格式: go command [arg] 其中,command是操作命令,arg是该命令的参数。 常用命令 Go的常用命令有:get、run、build、fmt、install、test等 (1) go get go get 命令主要是用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分...

一只IT小小鸟 625

Go语言包设计核心:包名、导入路径与模块化实践

在Go语言中,'包(package)'是代码组织与依赖管理的基础单元,其本质是编译期静态链接的逻辑边界,而非文件系统目录。理解包名(小写、语义明确、非路径)与导入路径(全局唯一、域名开头、模块坐标)的分离关系,是避免'cannot find package'和循环依赖等高频问题的关键。Go Modules通过go.mod定义模块契约,使包具备版本化、可重现构建的技术价值。该机制支撑微服务拆分、内部封装(internal)、测试隔离等工程实践,在电商、SaaS、CLI工具等场景中广泛用于构建高内聚、低耦合的系

weixin_34345753的博客 321

Go基础之环境搭建

Go语言,也被称为Golang,是一种由Google开发的静态类型、编译型编程语言,是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。go.mod是Go Modules的核心文件,用来定义模块及其依赖项。

上善若泪 7348

Go 学习笔记(37)— 标准命令行工具(go build 跨平台编译、交叉编译、go clean、go run、go fmt、go install、go get、go vet)

1. 标准命令简述 Go 本身包含来大量用于处理 Go 程序的命令和工具。 命令 作用 build 用于编译指定的代码包或 Go 语言源码文件。命令源码文件会被编译成可执行文件,并存放到命令执行的目录或指定目录下。而库源码文件被编译后,则不会在非临时目录中留下任何文件。 clean 用于清除因执行其他 go 命令而遗留下来的临时目录和文件。 doc 用于显示打印 Go 语言代码包以及程序实体的文档。 env 用于打印 Go 语言相关的环境信息。 fix 用于修正指定代码的

wohu1104的专栏 9801

基于EKF的UWB-IMU融合定位系统在农业机器人中的抗干扰优化与Matlab仿真

本文探讨了基于扩展卡尔曼滤波(EKF)的UWB-IMU传感器融合定位系统在农业机器人中的应用。通过Matlab仿真验证,该系统有效解决了农业环境中UWB信号遮挡和IMU累积误差问题,实现了厘米级高精度定位,显著提升了机器人在复杂场景下的抗干扰能力和导航可靠性。

numpy6sculptor的博客 624

Go环境搭建与入门

本文参考了Go官方文档(go.dev/doc)、Go官方入门教程(go.dev/doc/tutorial/getting-started)以及Go语言规范,为初学者提供从零开始的完整入门指南。

星航夜空的帆舟 393

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1235

Go语言注释规范:从语法约束到工程化文档实践

Go语言注释不是代码的附属说明,而是深度集成于编译器、格式化工具和文档生成链路的核心基础设施。其语法设计(如//与/* */的本质区分)、gofmt隐式校验规则、doc comments结构化要求,共同构成可验证、可执行、可演化的契约体系。这种注释机制支撑高合规场景下的可维护性、新人上手效率与MTTR优化,并天然适配godoc文档生成、staticcheck静态分析及IDE智能提示等现代开发体验。本文聚焦Go注释的工程本质,解析其在真实项目中如何成为连接代码、文档与协作的枢纽。

weixin_33806914的博客 374

HDMI2.1/eDP TX接口设计:

HDMI2.1向下兼容,HDMI2.1工作在FRL模式,HDMI2.0工作在TMDS模式。因此采用AC耦合电压模式驱动器。一般采用220nF,封装建议0201。,但是协议要求,往 CEC 管脚通过 27K 电阻加 3.3V 电压,漏电不允许超过。NOTE:如果只需要支持 HDMI2.0 及以下模式时, MOS管也不能省掉。DDC_SCL/DDC_SDA 协议规定是。HDMI2.0模式:配置为高,MOS导通。HDMI2.1模式:配置为低,MOS不导通。,必须增加电平转换电路。形成直流偏置,大约3V。

qq_40010777的博客 7866

解决在封装自定义IP时加入ila,或者其他ip核时出错的情况

在查阅很多资料后,明白了这个应该是软件bug,但是最终还是解决了问题 我们只需要删除

weixin_42553916的博客 3604

Dockerfile核心指令解析与Python Flask镜像构建实战

容器化技术通过将应用及其依赖打包成标准化的镜像,解决了环境一致性和可移植性难题,是云原生和微服务架构的基石。其核心原理在于利用操作系统级虚拟化实现资源隔离,技术价值体现在提升部署效率、简化运维流程。在应用场景上,无论是Web服务、数据处理还是CI/CD流水线,都依赖镜像作为交付物。Dockerfile作为定义镜像构建过程的蓝图,通过声明式语法将环境配置、依赖安装等步骤固化。本文聚焦Dockerfile核心指令如FROM、RUN、COPY与ADD的区别、CMD与ENTRYPOINT的配合,并结合Python

abcyan1235的博客 423

别再凭感觉了!手把手教你用Excel搞定激光器MPE与NOHD安全计算(附模板下载)

本文详细介绍了如何利用Excel自动化计算激光器的MPE(最大允许照射量)和NOHD(标称眼危害距离),提升激光安全评估的效率和准确性。通过实战案例和模板下载,帮助工程师快速掌握GB/T 7247标准中的关键计算,避免常见错误,适用于激光测距仪等设备的安评工作。

weixin_30954265的博客 468
上一篇: Go语言中的包管理工具之Go Modules的使用
下一篇: MySQL中常用的数据类型
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值