编译Go项目

  Linux下编译Go项目非常简单,使用cd命令打开main.go文件所在目录,执行“go build main.go”即可,这时会在当前目录下生成一个名为main的可执行文件,执行命令“./main”运行该可执行文件即可。
 
  如果想修改可执行文件的文件名可以使用“-o”参数,如:go build -o main.exe main.go,这样就会在当前目录下生成main.exe文件,需要注意的是.go文件必须放在命令末尾。
 
  关于跨平台编译
 
  Go的编译器还支持跨平台编译,也就是在Linux平台下可以编译出能在Windows/Mac平台运行的可执行文件,同样,在Windows平台下也可以编译出能在Linux/Mac平台运行的可执行文件。
 
  跨平台编译命令(在Linux平台编译,在Windows平台运行)
  [root@localhost ~]# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o main.exe main.go # 把main.exe文件复制到Windows平台下运行即可

  跨平台编译命令(在Windows平台编译,在Linux平台运行) 重要提醒:需要先进入go.mod文件所在目录,再执行编译命令。
  PS D:\dev\src> $env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"; {Go安装目录}\bin\go.exe build -o main.bin main.go # 把main.bin文件复制到Linux平台下运行即可

  下面是跨平台编译脚本(在Windows平台编译,在Linux平台运行;复制代码保存为*.bat文件,运行脚本即可编译):

@echo off

rem 重要提醒:建议使用记事本编辑当前脚本文件,且请务必使用ANSI编码,否则可能会导致编译出错。
rem 重要提醒:建议使用记事本编辑当前脚本文件,且请务必使用ANSI编码,否则可能会导致编译出错。
rem 重要提醒:建议使用记事本编辑当前脚本文件,且请务必使用ANSI编码,否则可能会导致编译出错。

rem 以下变量请根据实际情况修改
set GO_EXE=Go安装目录\bin\go.exe        & rem go.exe程序路径
set GO_MOD=项目根目录\src\go.mod        & rem 项目go.mod文件路径
set MAIN_GO=项目根目录\src\main\main.go & rem 项目main.go文件路径
set BUILD_OUTPUT=项目根目录\bin\main    & rem 编译输出文件保存路径(由于是Linux可执行程序,故无文件扩展名)

rem 打开go.mod文件所在目录
for %%i in (%GO_MOD%) do set GO_MOD_DIR=%%~dpi
cd /d %GO_MOD_DIR%

rem 设置临时环境变量(关闭命令行窗口后自动失效)实现跨平台编译(Windows平台编译,Linux平台运行)
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0

rem 开始编译
%GO_EXE% build -o %BUILD_OUTPUT% %MAIN_GO%

rem 检查是否编译成功
if %ERRORLEVEL% equ 0 (
    echo 程序编译成功了. . .
) else (
    echo 程序编译失败了. . .
)

rem 请按任意键继续. . .
pause

Copyright © 2025 码农人生. All Rights Reserved