登录
首页 >  Golang >  Go问答

构建自身的“cmd/compile”流程

来源:stackoverflow

时间:2024-03-22 10:39:41 356浏览 收藏

为了构建 Go 编译命令“cmd/compile”,需要克隆 Go 源代码并进行修改。使用命令“go build -o aaa -i cmd/compile”可以构建可执行文件,但它不会包含修改后的内容。解决方案是引导自己的编译器,通过运行“./all.bash”构建整个源代码树,并使用新编译器位于“~/src/github.com/golang/go/bin”下的版本来构建“cmd/compile”。

问题内容

目标

我想构建cmd/compile,这是go的编译命令。

问题

首先,我将 https://github.com/golang/go 克隆到 ~/src/github.com/golang/go 并修改 src/cmd/compile 中的代码。

其次,我转到 ~/src/github.com/golang/go/src,并输入 go build -o aaa -i cmd/compile

最后,aaa 可以工作,但它不包含我修改的任何内容。

如您所知,在任何地方(即使是 ~//tmp 或其他),一旦您输入 go build -o aaa -i cmd/compile,您就可以获得 aaa

但是,我想对其进行修改并构建它。

我怎样才能做到这一点?


解决方案


当您构建包 cmd/compile 时,它会为当前编译器构建 stdlib 包,而不是您所在源代码树中的包。

如果您打算使用编译器本身,则需要引导您自己的编译器:

  • 克隆 Go 源代码
  • 转到/src
  • 运行./all.bash

这将构建整个源代码树,并为您创建一个新的编译器。完成后,您必须使用此过程构建的编译器,该编译器位于 ~/src/github.com/golang/go/bin 下。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《构建自身的“cmd/compile”流程》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>