Golang 执行流程分析

文章目录

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

1. 编译和运行

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

两种执行流程的方式区别

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

2. 编译和运行说明

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

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

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

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

  5. 运行有两种形式

    • 直接运行生成的可执行Go程序,比如:hello.exe
    • 通过运行工具go run对源代码文件进行运行
相关推荐
程序猿DD3 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
余槐i6 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要8266 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
死磕音视频7 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
凤山老林7 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne8 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF8 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用
pride.li9 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
顽疲9 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友