Windows下编译Go源码

707 阅读2分钟

Windows下Go源码环境搭建.

简单在Windows搭建Go源码环境,方便阅读源码.

  • github上下载最新go代码.

    https://github.com/golang/go
    
    git checkout study -b go1.20 // 根据go最新版本tag在本地构建一个学习分支
    
  • Windows上安装gcc编译器

    我们最后要在修改源码之后,然后让自己的代码能够运用到自己修改之后的go环境,所以需要go编译成二进制放到PATH中,用来充当我的go环境,而Go在执行编译时是需要gcc编译器得,CGO的原因

    我们只需要将下载链接:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-win32/seh/x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z 直接下载后解压,然后将bin目录放到环境变量中即可.

  • Go源码编译:

    Go在1.4之后的版本后可以用自身Go环境进行编译,只不过其中要用到cgo,所以我们只要有gcc环境+go环境就可以实现go源码编译.

    编译之前确保你电脑上有如下环境:

    go version
    go version go1.19.3 windows/amd64
    
    gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=D:/c/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
    Target: x86_64-w64-mingw32
    .....
    

    编译:直接执行src/all.bat

    直接执行脚本后,go会去对所有包进行校验,以防止编译之后的环境用不了等.

    之后我们将脚本执行之后的bin加在环境变量中就可以了

    当我们看到下面的情况时就说明已经编译好了:直接加到环境变量中就可以用了

    ALL TESTS PASSED
    ---
    Installed Go for windows/amd64 in D:\go\src\open.source\go1.20\go
    Installed commands in D:\go\src\open.source\go1.20\go\bin
    *** You need to add D:\go\src\open.source\go1.20\go\bin to your PATH.
    

    不过不建议加到环境变量,以防止和自己原有的go环境冲突. 想要验证修改后的效果去bin目录下自己执行就好了.

    D:\go\src\open.source\go1.20\go\bin>go version
    go version go1.20.3 windows/amd64  // 本次自己编译安装的go环境.
    

参考文章: