运行时的错误表现:go version出现“command not found”提示,或者打包过程中因环境变量异常而找不到依赖。可按以下方法解决:

go version检查;若未安装,可通过以下两种方式安装:yum install golang无包问题):sudo rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPOcurl -s https://mirror.go-repo.io/centos/go-repo.repo | sudo tee /etc/yum.repos.d/go-repo.reposudo yum install golang/usr/local随后完成环境变量配置。~/.bashrc或~/.bash_profile中添加以下内容(假设Go安装在/usr/local/go):export GOROOT=/usr/local/goexport GOPATH=$HOME/goexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin运行source ~/.bashrc使配置生效。打包时可能出现“missing dependencies”(缺失依赖)或“cannot find package”(找不到包)的提示。解决方法如下:
go mod init <module-name>(<module-name>一般填写项目导入路径,例如github.com/user/project)。go mod tidy通过自动补充缺少的依赖项并移除未使用的依赖,保证go.mod以及go.sum文件保持正确。二进制文件在CentOS 7上完成编译后,转到CentOS 6运行会提示“version `GLIBC_2.x’ not found”(glibc版本过低)。解决方法如下:
docker run -it --rm -v $(pwd):/app -w /app centos:6 /bin/bashyum install -y golanggo build -o myapp将生成的二进制文件复制到目标CentOS 6服务器即可运行。编译阶段的错误提示为“cannot find -l”,比如libcurl、pthread),或者提示缺少头文件,例如curl/curl.h)。可采用以下方法解决:
libcurl时,运行sudo yum install libcurl-devel;缺少pthread时,运行sudo yum install glibc-devel。pkg-config不可用,手动设置环境变量(以libcurl为例):export INCLUDE_DIR=/usr/includeexport LIB_DIR=/usr/lib64go build -ldflags="-extldflags=-L/usr/lib64" main.go打包生成的二进制文件在Linux服务器运行时,会出现“exec format error”或“cannot execute binary file”提示。解决方法如下:
GOOS(操作系统)和GOARCH(架构)环境变量,例如:export GOOS=linux# 目标系统为Linuxexport GOARCH=amd64# 目标架构为64位go build -o myappchmod +x myapp赋予执行权限。编译时若提示“import cycle not allowed”(不允许循环导入),可能是包A导入包B的同时,包B又导入了包A。解决方法如下:
执行时的错误表现:go get或者go mod tidy执行过程中出现“timeout”、“connection refused”或“cannot download module”提示。解决方法如下:
ping google.com)。go env -w GOPROXY=https://goproxy.cn,direct/etc/resolv.conf,加入公共DNS,例如8.8.8.8)。代码修改并重新编译后,仍然出现旧版本错误,例如“undefined: xxx”。可按以下方法解决:
go clean -cache先清除缓存,之后再次编译:go clean -cachego build -o myapp