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对源代码文件进行运行
相关推荐
大鱼七成饱1 分钟前
💥 从崩溃到稳定:我踩过的 Rust Tokio 线程池坑(含代码示例)
后端
喵个咪17 分钟前
开箱即用的GO后台管理系统 Kratos Admin - 站内信
后端·微服务·go
Larry_Yanan19 分钟前
QML学习笔记(五十)QML与C++交互:QML中单例C++对象
开发语言·c++·笔记·qt·学习·ui·交互
凯芸呢22 分钟前
Java中的数组(续)
java·开发语言·数据结构·算法·青少年编程·排序算法·idea
竹竹零29 分钟前
JacksonUtil--序列化与反序列化
java·开发语言·windows
韩立学长42 分钟前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
Dyan_csdn1 小时前
springboot系统设计选题3
java·spring boot·后端
sheji34161 小时前
【开题答辩全过程】以 基于Java的旅游网站的设计与开发为例,包含答辩的问题和答案
java·开发语言·旅游
yue0081 小时前
C# XML文件的读写V2.0
xml·开发语言·c#
SweetCode1 小时前
C++ 实现大数加法
开发语言·c++·算法