編譯自制go源代碼

看了一篇文章改go源碼從新編譯, 雖然工做中沒使用到可是好奇試下, 下面是最簡單的修改 fmt 包的 Println 函數爲例進行了修改, 點擊閱讀原文能夠看到參考資料, 一塊兒擼起來~git

1.下載源代碼

項目地址: github.com/golang/gogithub

git clone方式太慢, 這裏推薦一個加速的地址 (地址: github.zhlh6.cn/)golang

轉換後直接使用下方地址 clone 便可 image.pngbash

速度變得快了一點吧~😅 image.pngmarkdown

2.修改後編譯源代碼

下載源代碼後, 修改代碼函數

func Println(a ...interface{}) (n int, err error) {
    println("hello 小宇")
    return Fprintln(os.Stdout, a...)
}
複製代碼

進入編譯oop

./src/make.bash
複製代碼

若是遇到 make.bash must be run from $GOROOT/src, 則須要修改 GOROOT 指向項目源碼目錄便可, 再進入到src目錄執行 make.bash. 編譯成功後則在src目錄下生成bin目錄測試

查看新編譯 go 執行文件 image.pngspa

3. 測試

調用 Println3d

package main
import "fmt"

func main(){
   fmt.Println("123")
}

複製代碼

編譯go源碼

./bin/go run main.go 
複製代碼

注意這裏 go 命令必須是咱們剛編譯成功的執行文件

output:

hello 小宇
123
複製代碼
相關文章
相關標籤/搜索