我一直很难在一个由 vagrant 提供动力的虚拟机上执行一个简单的golang程序. 以下是我的go env个相关字段:

GOARCH="amd64"
GOPATH="/usr/local/src/go"
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"

这是我试图执行的程序(位于/usr/local/src/go/program中):

package program

import (
    "fmt"
)

func main() {
    fmt.Print("Aloha")
}

这就是我得到的输出:

main.go:4:5:
/usr/local/go/src/fmt/doc.go:1:1: expected 'package', found 'EOF'
package runtime:
/usr/local/go/src/runtime/alg.go:1:1: expected 'package', found 'EOF'

考虑到这是一个完全虚假的程序.奇怪的是,它完全在不同的环境中工作.

谢谢!

推荐答案

问题既不在GOROOT,也不在GOPATH.Go安装在某一时刻失败,导致整个系统不稳定(已创建文件,但完全为空).再次配置虚拟机时,GO模块判断文件是否存在.当他们这样做的时候,人们理所当然地认为安装已经开始了.

一次清理和重新安装解决了这个问题.

Go相关问答推荐

如何在Deliverq中高效地传达客户依赖关系?

Makefile:现有文件上没有这样的文件或目录,不加载环境变量

Golang测试容器,无法使网络正常工作

如何使用中间件更改http请求的响应代码?

如何为循环扫描的bufio scanner 设置超时?

是否可以使用标准库构建 Go 二进制文件?

最长连续重复的字符golang

Get 请求在 Thunder 客户端/Postman 中返回数据,但在 Golang 代码中给出空白数据

确保 Go 1.20 编译时的严格可比性?

如何在切片增长时自动将切片的新元素添加到函数参数

致命错误:找不到由 zergon321/reisen 引起的libavcodec/avcodec.h文件

具有未导出字段的 struct 类型之间的转换

为什么我不能使用来自 gocloak 中 Login() 的访问令牌在 KeyCloak 中创建新客户端?

通用函数与外部包中的常见成员一起处理不同的 struct ?

K8s 算子读取原始数据

如何在 Windows 中使用 github.com/AllenDang/giu 和 github.com/gordonklaus/portaudio 构建 GO 程序

有没有办法在一个 goroutine 返回后延迟后取消上下文?

Go模板中的浮点除法

将基本 HTTP AUth 用户/密码凭据存储在 GO 中,无需外部包

(如何)我可以基于接口抽象地实现Stringer吗?