当前位置: 首页 > news >正文

go build命令

执行go build命令后会进行以下步骤:

1.编译(compile 将代码翻译成二进制机器码) 它会读取你的 .go 源代码文件(例如 main.go 和 animal 包里的所有文件)。 它会检查代码的语法是否正确。 它会将人类可读的 Go 代码转换成机器可以执行的二进制机器码(生程目标文件.obj)。

2.链接(link) 编译得到的二进制机器码还不完整(比如在main.go对应的二进制码中,调用别的函数的地方留下一个占位符,这个占位符的大致意思是说,嘿,链接器,请在这里填上被调用的xxx函数的真正地址),如果直接运行这个编译后的二进制机器码,程序执行到这个调用时,它会发现一个无法跳转的空白地址,然后崩溃。它缺少了所有跨文件、跨包调用的内存地址。 不仅不完整,而且是乱序的,对单个文件而言,其编译后形成的机器码不是乱序的,但是从整个项目来看就是乱序,编译完成后,你得到的是一堆独立的目标文件的,就像一堆散落在桌面上的章节册子,还没有按照最终的顺序(1, 2, 3...)排列起来。main 包是程序的入口,它应该是“第一章”,但此时它和其他章节是平等的,没有谁先谁后。

3.生成可执行文件 最终,go build后会在当前目录下生成一个可执行文件 在windows系统上,它会生成一个 .exe 文件,例如 项目名.exe 在macos系统或者linux系统上生成和项目同名的

go run和go build的区别:

go run 会 编译并立即运行 你的程序,但它 不会在你的项目目录里留下可执行文件。 go build: 这个命令 只编译,不运行。它会生成一个持久的可执行文件,你可以随时运行它,或者把它部署到服务器上。

http://www.dtcms.com/a/449491.html

相关文章:

  • Go语言入门(22)-goroutine
  • 网站建设及编辑岗位职责网站做查赚钱
  • 开源革命下的研发突围:Meta Llama系列模型的知识整合实践与启示
  • 做的网站怎样更新排名优化网站seo排名
  • 鸿蒙NEXT网络通信实战:使用HTTP协议进行网络请求
  • FastApi项目启动失败 got an unexpected keyword argument ‘loop_factory‘
  • 杭州有专业做网站的吗用.net做购物网站
  • 什么是 mesh 组网
  • 网站建设什么行业创建个人网站教案
  • 十五、深入理解 SELinux
  • 10.6作业
  • 《投资-70》投资、投机、赌博的比较,一个靠企业内在的价值增值、一个靠市场的价格波动、一个全靠随机性的运气。
  • 前端知识详解——HTML/CSS/Javascript/ES5+/Typescript篇/算法篇
  • 【MySQL】 索引特性详解
  • FreeRTOS实现微秒级时间同步(基于1588V2)
  • 网站基本要素网站建设 主要学是么
  • Java包的命名,常见的包类,如何导入包
  • 滑动窗口题目:替换后的最长重复字符
  • 谷歌seo建站成都不能去的建筑设计公司
  • 贵阳网站制作企业陕西省建设网三类人员证书打印
  • 【小沐学WebGIS】基于Three.JS绘制飞行轨迹Flight Tracker(Three.JS/ vue / react / WebGL)
  • 告别 v-model 焦虑:在 React 中优雅地处理『双向绑定』
  • vue生态都有哪些?
  • C++之类与对象
  • 东莞长安做网站wordpress创意主题店铺
  • 百度地图收藏地址提取与格式转换工具 说明文档
  • 操作系统应用开发(二十三)RustDesk ng反向代理—东方仙盟筑基期
  • 河北省建设厅网站查询中心郑州建站系统费用
  • 分布式系统设计模式:从理论到实践
  • 新零售升维体验商业模式创新研究:基于开源AI大模型、AI智能名片与S2B2C商城小程序的融合实践