问题描述
本人接触 golang 已经有一段时间了, 最近在折腾着想在自己的 PC 上搭建起 golang 编译器源代码的环境, 通过调试学习一下 golang 的实现, 相信这样能更好的学习到更多 go 语言的精髓, 但是苦于一直没有成功, 因此想在此请教各位大神, 希望大神不吝赐教, 万分感谢!
本人接触 golang 已经有一段时间了, 最近在折腾着想在自己的 PC 上搭建起 golang 编译器源代码的环境, 通过调试学习一下 golang 的实现, 相信这样能更好的学习到更多 go 语言的精髓, 但是苦于一直没有成功, 因此想在此请教各位大神, 希望大神不吝赐教, 万分感谢!
go 语言有两种编译器, gc 和 gccgo , 均可在多种平台/系统编译.
参考 https://golang.org/doc/instal...
If a binary distribution is not available for your combination of operating system and architecture, try installing from source or installing gccgo instead of gc.
《go语言学习笔记》这本书有很详细的go源码解析,目前我也在学习当中,希望共勉
环境的话也不复杂,主要有以下几点:
1·Linux环境
2·安装gdb调试
3·clone下来源码
4·写一个简单的demo,并通过gdb调试
你就可以从入口一步步地学习里面的函数是怎么调用的,包括内存管理,垃圾处理等等。
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答879 阅读✓ 已解决
2 回答2.2k 阅读
1 回答2.1k 阅读
1、首先你的系统需要是
Linux 或者 Unix
。2、电脑硬件要能满足要求(i7 CUP,8G RAM,至少100G的磁盘空间)
3、系统需要安装完所有编译依赖,例如
make
。可以参考如何构建deb包、rpm 包
,把编译环境搭起来。其它依赖可在编译出错,提示缺少依赖的时候安装。4、要有足够的耐心,和比较强的英语阅读能力,因为编译过程中的很多东西需要反复的查资料,才能找到合适的依赖包,而且这些依赖的网站大多数是做开源的,比较古老,需要比较深厚的技术功底才能弄清整个流程。
5、要有足够的耐心,我编译
swift
的时候我的MacPro
至少花了45分钟
,这还是在很多依赖都已经编译好的情况下。