如何从Go install命令获取调试输出?
如何从Go install命令获取调试输出? 在学习Go语言时遇到了这个问题。
我已经设置好了路径和所有配置,但 go install 命令并没有将二进制文件安装到默认路径。结果发现只是用户操作错误,但搞清楚这一点真是费了九牛二虎之力,因为Go并没有提供太多帮助来排查问题。go install 命令没有抛出任何错误,也没有给出任何输出,真是让人哭笑不得。我找不到一个详细输出信息的标志。
如何获取详细的输出信息,比如“正在尝试构建 X”或“在 X 路径创建二进制文件”或“在‘main’中未找到任何包,因此不会构建任何内容”等等?
在我看来,没有这类输出信息是一种糟糕的用户体验。
2 回复
$ go install -v -n -a
$ go install -v -x -a
使用 -x 标志可以输出详细的构建步骤。例如:
go install -x your/package
这会显示所有执行的命令,包括编译和链接的详细过程。如果需要更多调试信息,可以结合 -v 标志:
go install -x -v your/package
-v 会列出正在编译的包名。例如,执行后会输出类似这样的信息:
WORK=/tmp/go-build
mkdir -p $WORK/b001/
cd /home/user/project
/usr/local/go/pkg/tool/linux_amd64/compile -o $WORK/b001/_pkg_.a -trimpath "$WORK/b001=>" -p main -complete -buildid ...
如果遇到路径问题,可以检查 GOPATH 和 GOBIN 环境变量:
go env GOPATH
go env GOBIN
对于模块化项目,使用 -mod=readonly 可以避免自动更新依赖,同时输出更多模块相关信息:
go install -x -mod=readonly your/package
要查看安装的目标路径,可以在命令执行后检查:
ls -la $(go env GOBIN)
或者直接指定输出目录进行调试:
go install -o /tmp/debug_binary your/package

