go语言能编译吗
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《go语言能编译吗》就很适合你!本篇内容主要包括go语言能编译吗,希望对大家的知识积累有所帮助,助力实战开发!
这篇“go语言能编译吗”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言能编译吗”文章吧。
go语言能编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言。对Go语言程序进行编译的命令有两种:1、“go build”命令,可以将Go语言程序代码编译成二进制的可执行文件,但该二进制文件需要手动运行;2、“go run”命令,会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件。
go语言能编译。
Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言,也就说代码在运行之前需要通过编译器生成二进制机器码,随后二进制文件才能在目标机器上运行。
Go语言程序的编译和运行的方法
可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译:
go build命令可以将Go语言程序代码编译成二进制的可执行文件,但是需要我们手动运行该二进制文件;go run命令则更加方便,它会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件,这个特点很适合用来调试程序。
1、命令行工具
这里使用 Windows 自带的命令行工具(也叫 CMD 窗口或者命令提示符)来编译Go语言程序。微软后来对命令行工具进行了一次升级,并更名为 Powershell,power 是更加强大的意思。
打开命令行工具的方式多种多样,下面列出了比较常用的两种:
可以在开始菜单中打开命令行工具,然后 cd 到 Go 源文件所在的目录。
也可以在 Go 源文件所在目录的空白处按住 Shift 键并单击鼠标右键,然后在弹出菜单中选择“在此处打开命令行窗口”或者“在此处打开 Powershell 窗口”,这样会自动 cd 到 Go 源文件所在的目录,如下图所示。这种方式更加方便,推荐大家使用。
提示:cd 是命令行工具的一个命令,用来改变当前所在的目录,是 change directory 的缩写。

Win7 下选择“在此处打开命令窗口”

Win10 下选择“在此处打开 Powershell 窗口”
go build 命令
2、go build 命令
go build命令用来启动编译,它可以将Go语言程序与相关依赖编译成一个可执行文件,其语法格式如下。
go build fileName
其中 fileName 为所需要的参数,可以是一个或者多个 Go 源文件名(当有多个参数时需要使用空格将两个相邻的参数隔开),也可以省略不写。
使用 go build 命令进行编译时,不同参数的执行结果也是不同的。
1) 当参数不为空时
如果 fileName 为同一 main 包下的所有源文件名(可能有一个或者多个),编译器将生成一个与第一个 fileName 同名的可执行文件(如执行go build abc.go def.go ...会生成一个 abc.exe 文件);如果 fileName 为非 main 包下的源文件名,编译器将只对该包进行语法检查,不生成可执行文件。
2) 当参数为空时
如果当前目录下存在 main 包,则会生成一个与当前目录名同名的“目录名.exe”可执行文件(如在 hello 目录中执行go build命令时,会生成 hello.exe 文件);如果不存在 main 包,则只对当前目录下的程序源码进行语法检查,不会生成可执行文件。
使用go build命令对我们上一节编写的程序进行编译,运行结果如下所示:
D:\code> go build .\demo.go D:\code> .\demo.exe Hello World!
其中D:\code>对应的是当前目录,也就是 D 盘下的 code 文件夹,它是命令行工具自动添加的,不属于编译命令的一部分。
第 1 行go build命令后面的参数中,.\表示当前目录。在Windows 系统中,当前目录使用.\表示;在类 Unix 系统(例如 Linux、MacOS 等)中,当前目录使用./表示。
注意,这里的go build命令中
.\可以省略不写,不会影响编译。
另外,go build命令只有在执行出错的情况下才会有返回信息,执行成功的话是没有返回信息的,但是会在当前目录生成一个与 main 包文件同名的 .exe 可执行文件,如下图所示。

第 2 行中的.\demo.exe表示执行当前目录下的 demo.exe 程序。
第 3 行则是 demo.exe 程序的运行结果。
3、go run 命令
除了使用go build命令外,Go语言还为我们提供了go run命令,go run命令将编译和执行指令合二为一,会在编译之后立即执行Go语言程序,但是不会生成可执行文件。
go run命令的语法格式如下:
go run fileName
其中 fileName 为所需要的参数,参数必须是同一 main 包下的所有源文件名,并且不能为空。
使用go run命令对我们上一节编写的程序进行编译,运行结果如下所示:
D:\code> go run demo.go Hello World!
可以看到第 1 行的go run命令执行后,直接在第 2 行输出了程序的运行结果。
以上就是关于“go语言能编译吗”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注golang学习网行业资讯频道。
到这里,我们也就讲完了《go语言能编译吗》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!
go语言的用途是什么及有哪些优势
- 上一篇
- go语言的用途是什么及有哪些优势
- 下一篇
- go语言垃圾回收机制是什么样的
-
- 沉默的小鸽子
- 这篇技术贴真是及时雨啊,细节满满,感谢大佬分享,已加入收藏夹了,关注楼主了!希望楼主能多写Golang相关的文章。
- 2023-04-02 01:48:27
-
- 狂野的发卡
- 感谢大佬分享,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢大佬分享文章!
- 2023-03-12 14:25:29
-
- 迅速的皮带
- 这篇技术文章真是及时雨啊,细节满满,真优秀,mark,关注up主了!希望up主能多写Golang相关的文章。
- 2023-03-03 15:00:42
-
- 可爱的飞鸟
- 这篇技术贴太及时了,太详细了,感谢大佬分享,已收藏,关注老哥了!希望老哥能多写Golang相关的文章。
- 2023-03-03 11:40:58
-
- 粗暴的外套
- 感谢大佬分享,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢作者分享技术文章!
- 2023-03-03 05:10:45
-
- 香蕉月饼
- 太详细了,码住,感谢师傅的这篇文章内容,我会继续支持!
- 2023-03-03 03:31:59
-
- Golang · Go教程 | 31分钟前 | 字符串 · 标准库 · go · strings.Builder Go字符串拼接
- Go strings.Builder 生成字符串后还能继续写吗
- 158浏览 收藏
-
- Golang · Go教程 | 44分钟前 |
- Go bytes.Buffer 复用时怎么避免旧数据残留
- 441浏览 收藏
-
- Golang · Go教程 | 57分钟前 | 错误处理 · go · IO · io.MultiWriter Go Writer
- Go io.MultiWriter 写多份输出时怎么处理部分失败
- 372浏览 收藏
-
- Golang · Go教程 | 1小时前 |
- Go 怎么用 io.TeeReader 同时读取和计算摘要
- 476浏览 收藏
-
- Golang · Go教程 | 1小时前 |
- Go JSON 数字怎么避免解码成 float64
- 201浏览 收藏
-
- Golang · Go教程 | 1小时前 | JSON · Go教程 · 事件分派 · json.RawMessage go json解析 JSON事件
- Go json.RawMessage 怎么延迟解析多种事件体
- 376浏览 收藏
-
- Golang · Go教程 | 1小时前 | JSON · go · 流式解析 · json.Decoder Go JSON JSON流
- Go json.Decoder 如何检测 JSON 流中间的截断记录
- 495浏览 收藏
-
- Golang · Go教程 | 2小时前 | 标准库 · csv · Go教程 · 数据导入 · encoding/csv csv.Reader CSV换行字段 Go文件解析
- Go encoding/csv 怎么保留字段里的换行
- 434浏览 收藏
-
- Golang · Go教程 | 2小时前 | go · bufio · 文本扫描 · bufio.Scanner Scanner.Buffer 超长行
- Go bufio.Scanner 读取超长行怎么安全扩容
- 100浏览 收藏
-
- Golang · Go教程 | 3小时前 | go · database/sql · Rows.Scan ·
- Go 扫描未知列数结果时怎么动态分配接收变量
- 328浏览 收藏
-
- Golang · Go教程 | 3小时前 | Go教程 · database/sql · 数据库元数据 · SQL NULL · Go database/sql rows ColumnTypes ColumnType.Length
- Go RowsColumnTypes 返回长度为 nil 时怎么解释
- 128浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 27次使用
-
- SuperCLUE
- SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
- 180次使用
-
- C-Eval
- 深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
- 119次使用
-
- AI Prompt Library
- 探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
- 46次使用
-
- Generrated
- Generrated汇集9300+张DALL·E生成图像及对应提示词,支持查看完整图集、对比DALL·E 2与3版本差异,是AI绘图新手学习Prompt设计与获取创作灵感的实用工具。
- 24次使用
-
- 有关Go语言拼接URL路径的方法
- 2023-03-09 185浏览
-
- go语言能不能做后端
- 2023-03-03 460浏览
-
- go语言和java的区别是什么
- 2023-03-03 430浏览
-
- go语言如何进行强制类型转换
- 2023-03-04 450浏览
-
- go语言的beego怎么使用
- 2023-03-03 320浏览

