go 在构建源代码时,调用了空的包路径的LoadImport函数 [已恢复]

olhwl3o2  于 4个月前  发布在  Go
关注(0)|答案(8)|浏览(44)

问题描述

尝试通过运行 time ./make.bash 命令从 src 目录的仓库中构建 Go 源代码,但第一次构建成功,第二次和第三次构建失败。在另一个版本的 Go 源代码上运行 time ./make.bash 命令两次成功。

原因分析

在第一次构建时,Go 代码可以正常构建,但在第二次和第三次构建时,出现了 panic: LoadImport called with empty package path [recovered] 错误。这可能是由于环境变量设置不正确导致的。

解决方案

将以下内容添加到 go env.bash 文件中:

export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

然后再次尝试运行构建命令,看看是否能够成功构建 Go 代码。
在macOS上安装Go时遇到了问题,无法下载go1.23版本的工具链。请尝试以下方法解决问题:

  1. 确保您的网络连接正常。
  2. 检查您的GOPATH和GOROOT环境变量是否设置正确。
  3. 尝试使用go env -w GO111MODULE=on命令启用Go Modules功能。
  4. 如果仍然无法解决问题,可以尝试手动下载并安装Go。访问Go官方网站(https://golang.org/dl/)下载适用于macOS的Go安装包,然后按照官方文档的说明进行安装。
ztmd8pv5

ztmd8pv53#

我尝试了,使用非常相似的配置(Darwin-amd64,使用1.22.4作为构建编译器,在tip上构建,goenv中类似的设置),但无法重现。

0x6upsns

0x6upsns4#

我尝试了,使用非常相似的配置(Darwin-amd64,使用1.22.4作为构建编译器,在tip上构建,goenv中类似的设置),但无法重现。
这并不总是为我重现。自从提交问题以来,我已经尝试了几次。

yqlxgs2m

yqlxgs2m5#

根据OP中所述,我比较了两个版本的源代码构建时间,一个是我修改过的,一个是我没有修改过的。为了防止我误报哪个失败了,我对源代码所做的更改导致了以下pull请求,显然这个pull请求不能对这个问题中报告的失败类型负责。

p8ekf7hl

p8ekf7hl6#

@MikeMitchellWebDev,在哪个提交上运行make.bash?我理解构建不能可靠地失败,但你仍然能够偶尔重现吗?

kokeuurv

kokeuurv7#

我在commit 6d93de2c110f66457f103c33ba496ff2e2bf33af上运行make.bash。今天在commit ea537cca314d9da5365eeefcc375410c76e93b36上,我两次运行了time ./make.bash,没有出现任何故障。

eqqqjvef

eqqqjvef8#

我尝试在6d93de2c110f66457f103c33ba496ff2e2bf33af上使用Go 1.22.4引导工具链运行make.bash,但无法重现问题。如果再次出现问题,我们应该关闭此问题并重新打开吗?
如果我们能得到导致故障发生的复现说明,例如每五次尝试中有一次发生故障,即使不是一致的,这对我们诊断和修复问题也会很有帮助。

相关问题