发布于2026-06-29 阅读(0)
扫一扫,手机访问
在Ubuntu上编译Golang项目时,不少人会踩到一些坑,这里把常见的几个问题梳理出来,配合对应的解决方法,希望能帮大家少走弯路。

如果终端运行go version没有任何输出,那基本可以确定是没装Golang。要是装过但版本太低,比如项目要求Go 1.21而你还在用1.15,那编译时也会报错。解决方式很直接:
sudo apt update && sudo apt install golang-go但注意仓库版本可能不是最新的。更推荐手动下载tar.gz包解压到/usr/local:wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz~/.bashrc或~/.zshrc里加上:export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
source ~/.bashrc编译需要CGO支持的项目(比如调用C代码)时,如果没装GCC工具链,就会出现“cannot find -lxxx”或“CC not found”之类的错误。另外,第三方依赖库没装的话,会报“undefined: xxx”。解决方案分两步:
sudo apt install build-essential gcc libc6-dev makego mod init your_project_name
go get -u ./...
go mod tidyGOROOT(Go安装路径)、GOPATH(工作空间)或PATH没设对,常见的后果就是“command not found: go”,或者编译时找不到依赖包。检查方法:
GOROOT指向Go安装目录(比如/usr/local/go),GOPATH指向工作目录(比如~/go),然后把$GOROOT/bin和$GOPATH/bin都加到PATH里:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source ~/.bashrcecho $GOROOT # 应输出Go安装路径
echo $GOPATH # 应输出工作目录路径Go编译器对语法要求很严格,常见错误包括括号不匹配、变量未定义、结构体字段不存在、函数参数类型不对等。这类问题通常靠go build的报错信息就能定位:
另外,养成习惯用go fmt格式化代码,能避免很多低级语法问题。
想编译跨平台可执行文件(比如Windows程序)时,如果没指定正确的C编译器,就会遇到“unrecognized command line option ‘-mthreads’”或“cannot find -lxxx”之类的错误。正确的做法是:
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -o output.exe main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o output.exe main.goGo编译器会缓存中间结果,如果缓存损坏或过期,可能会出现“reading input: EOF”或“unexpected end of input”等奇怪错误。解决方法是清理缓存然后重新编译:
go clean -cache # 清理编译缓存
go clean -modcache # 清理模块缓存(可选)
go build # 重新编译
如果当前用户对项目目录或输出文件没有写入权限,编译时会报“permission denied”。解决办法:
chmod添加目录写入权限:chmod -R u+w ~/go/src/your_projectsudo go build(但长期不推荐,可能影响依赖文件所有权)。如果同时使用多个Go版本,没正确切换的话,比如项目用了Go 1.18+的特性,但当前环境是1.17,那就会报版本不兼容的错误。建议用版本管理工具gvm:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.21.0
gvm use go1.21.0
之后用go version确认切换成功即可。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8