-v标志显示详细编译日志在终端中进入Golang项目目录,运行go build -v命令。-v(verbose)标志会让编译器输出每个编译包的名称,帮助你了解编译的进度和当前处理的包。例如:
cd ~/my-golang-project
go build -v
输出示例:
main.go
github.com/some/dependency
# github.com/some/dependency
./dependency_file.go:10:2: undefined: SomeFunction
这种方法适合快速查看编译的整体进度和潜在错误。
-x标志显示详细编译命令若需要更详细的编译过程(如执行的命令、参数等),可以使用-x标志。它会输出编译过程中调用的所有命令(如gcc、as等),帮助你定位卡住的具体步骤。例如:
go build -x
输出示例:
WORK=/tmp/go-build123456
mkdir -p $WORK/b001/
cat >$WORK/b001/importcfg << 'EOF' # internal
packagefile fmt=/usr/lib/go-1.21/pkg/linux_amd64/fmt.a
...
EOF
cd /home/user/my-golang-project
/usr/lib/go-1.21/pkg/tool/linux_amd64/compile -o $WORK/b001/_pkg_.a -trimpath $WORK/b001 -p main -complete -buildid xxxxxxxx -goversion go1.21.0 -D _/home/user/my-golang-project -I $WORK/b001/_importcfg -pack ./main.go
...
该方法适合排查编译卡顿或命令执行失败的问题。
若需要长期保存或后续分析编译日志,可以使用Shell的重定向功能,将标准输出(stdout)和标准错误(stderr)保存到文件。例如:
go build -v > build.log 2>&1
>:将标准输出重定向到build.log文件;2>&1:将标准错误合并到标准输出,一同写入文件。cat build.log、less build.log或文本编辑器查看日志内容。若使用Visual Studio Code(VS Code)、GoLand等IDE,可直接在编辑器的输出面板中查看编译日志:
strace命令跟踪系统调用(如strace -f go build),定位卡住的环节;go mod tidy确保依赖完整,避免因依赖问题导致编译停滞。