Golang 执行流程分析

文章目录

  • [1. 编译和运行](#1. 编译和运行)
  • [2. 编译和运行说明](#2. 编译和运行说明)

1. 编译和运行

  • 如果是对源码编译后,再执行,Go的执行流程如下图
  • 如果我们是对源码直接 执行 go run 源码,Go的执行流程如下图

两种执行流程的方式区别

  1. 如果先编译生成了可执行文件,那么可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行
  2. 如果是直接 go run go源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行
  3. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多

2. 编译和运行说明

  1. 有了go源文件,通过编译器将其编译成机器可以识别的二进制码文件。

  2. 在该源文件目录下,通过go buildhello.go 文件进行编译。可以指定生成的可执行文件名,在windows 下必须是 .exe 后缀。

  3. 如果程序没有错误,没有任何提示,会在当前目录下会出现一个可执行文件(windows下是 .exe ,Linux 下是一个可执行文件),该文件是二进制码文件,也是可以执行的程序。

  4. 如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误

  5. 运行有两种形式

    • 直接运行生成的可执行Go程序,比如:hello.exe
    • 通过运行工具go run对源代码文件进行运行
相关推荐
lijgvnns6 分钟前
个人AI编程工具的vibe coding实践:从爬虫到导出Excel的全流程
开发语言·javascript·ecmascript
Full Stack Developme15 分钟前
Spring Integration 教程
java·后端·spring
爱勇宝18 分钟前
AI 时代,前端工程师的话语权正在下降?
前端·后端
kymjs张涛18 分钟前
一个月,纯VibeCoding,全平台云笔记APP
前端·javascript·后端
青春喂了后端20 分钟前
Go Sidecar Status 性能优化
开发语言·性能优化·golang
摇滚侠22 分钟前
MyBatis 入门到项目实战 MyBatis 分页插件 65-66
java·开发语言·sql·mybatis
星辰_mya24 分钟前
autowired和resource区别
java·后端·spring·架构·原理
用户0190275816124 分钟前
用 Python + backtrader 做专业级策略回测
后端
lazy_ma27 分钟前
大模型实操-Spring Boot集成LangChain4j
人工智能·后端
CHHH_HHH28 分钟前
【C++】哈希表原理与实战:从冲突解决到性能优化
开发语言·数据结构·c++·学习·算法·哈希算法·散列表