无法再在 golang 中加载包

2023-12-06

我似乎无法弄清楚这一点。我正在使用我的 Windows 电脑进行开发并部署到 Linux 机器上,一切都很好,突然间我无法再编译任何东西,甚至无法编译一个简单的 hello world 程序。可能是在 Windows 更新之后。我所做的一切都会出现这种错误:

F:\OneDrive\Projects\gows\src\zonemaster>go install
can't load package: package zonemaster: cannot find package "zonemaster" in 
any of:
    C:\Go\src\zonemaster (from $GOROOT)
    F:\OneDrive\Projects\gows\src\zonemaster (from $GOPATH)

GOROOT 和 GOPATH 设置正确,一如既往,但找不到任何包。这在我拥有的每个包上都失败了。上面的程序是“main”包的一部分

我已更新转到 1.10.1 并设置并重新检查所有路径,但没有任何效果。

当我尝试构建它时,它说:

F:\OneDrive\Projects\gows\src\zonemaster>go build zonemaster.go
can't load package: package main: cannot find package "." in:
        F:\OneDrive\Projects\gows\src\zonemaster

第一行zonemaster.go是 package main (与我所有的非编译程序一样)。

这是我的 go 环境,以防有帮助:

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\ameet\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=F:\OneDrive\Projects\gows
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ameet\AppData\Local\Temp\go- 
   build874557962=/tmp/go-build -gno-record-gcc-switches

EDIT:

即使我运行一个简单的 hello.go 我也有同样的问题:

F:\OneDrive\Projects\gows\src\hello>cat hello.go
    package main

    import "fmt"

    func main() {
        fmt.Printf("hello, world\n")
    }
F:\OneDrive\Projects\gows\src\hello>go build hello.go
can't load package: package main: cannot find package "." in:
        F:\OneDrive\Projects\gows\src\hello

解决方案:

事实证明,onedrive 更新是问题所在。我按照 Phrozens 的建议将我的 go 工作区文件夹复制到其他位置,在 OneDrive 设置中取消勾选“按需文件”,删除 OneDrive 文件夹中的 gows 文件夹,然后从备份中将其复制回来。文件现在再次在我的 OneDrive 文件夹中正常编译。


我刚刚遇到了同样的问题,显然这与最新的 OneDrive 更新有关。我刚刚在其他地方创建了一个测试目录,设置了 GOPATH 并且工作得非常顺利,我不知道为什么,但到目前为止我一直在 OneDrive 上工作,没有出现任何问题。

https://github.com/golang/go/issues/22579

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法再在 golang 中加载包 的相关文章

  • golang中通道缓冲容量0和1的区别

    我已将通道缓冲区大小设置为零 例如var intChannelZero make chan int 当从intChannelZero将被阻止 直到intChannelZero有价值 另外 我将通道缓冲区大小设置为 1 例如var intCh
  • 如何将所有GET请求查询参数放入Go中的结构体中?

    你好 我想将 get 查询参数转换为 Go 中的结构 例如我有这样的结构 type Filter struct Offset int64 json offset Limit int64 json limit SortBy string js
  • golang.org 包和标准库之间的区别

    我使用 go 已经有一段时间了 我注意到 Go 标准库 和 golang org x 之间存在重复的包 我的问题是 为什么它们被释放两次 在这两者中 我应该使用哪一个 更新的 规范的等 到目前为止我注意到的一些示例包已发布两次 golang
  • 单值上下文中的多值错误

    我在编译 GO 代码时遇到此错误 multiple value fmt Println in single value context 我正在尝试创建一个函数 该函数接受可变数量的整数并将每个变量打印在一行上 GO package main
  • 指针上定义的方法仍然可以用值调用

    Effective Go 文档说明如下 关于接收者的指针与值的规则是 可以在指针和值上调用值方法 但只能在指针上调用指针方法 http tip golang org doc effective go html pointers vs val
  • 将中间件与 Golang Gorilla mux 子路由器结合使用

    如何将中间件应用到 Go 中大猩猩工具包 http www gorillatoolkit org 多路复用器子路由器 我有以下代码 router mux NewRouter StrictSlash true apiRouter router
  • 关于编写惯用的 Golang 的建议

    我正在掌握 Golang 的做事方式 首先是一些示例代码 package main import log os func logIt s string f os OpenFile errors log os O RDWR os O CREA
  • “http:多个response.WriteHeader调用”有什么不好的影响?

    尽管我发现 http 多个响应 WriteHeader 调用 例外 但我的服务器表现良好 此异常不会导致我的服务器出现恐慌或行为异常 我进行了很多搜索 但只找到了如何解决这个问题 没有文档描述异常的不良影响 有人可以帮我找出为什么 http
  • 如何对结构切片而不是切片结构进行范围调整

    稍微玩了一下 Go HTML 模板后 我发现的所有循环模板中对象的示例都是将切片结构传递给模板 有点像这个示例 type UserList struct Id int Name string var templates template M
  • 如何将长 Go 模板函数拆分为多行?

    我有一个很长的printf调用 Go 模板 例子 printf mongodb s s s s authSource admin replicaSet s readPreference nearest w majority Values r
  • 如何通过在切片上查找来从切片复制到数组

    我正在编写一个库来处理二进制格式 我有一个带有数组变量的结构 我想保留它以用于文档目的 我还需要从输入字节片中查找和判断 一些伪代码 type foo struct boo 5 byte coo 3 byte func main input
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 使用 jar 依赖项构建 Android 库项目

    我已经被一个问题困扰了几天 但我不知道如何解决这个问题 我正在处理一个 Android 库项目 该项目正在使用 android sdk 提供的 Android 工具进行编译 在项目内部 我遵循 Android 项目的标准结构 我的 jar
  • Go 指针 - 通过指针将值附加到切片

    我有一个 struct ProductData 及其实例 p 它有一个切片属性 type ProductInfo struct TopAttributes map string interface 我想设置 TopAttributes 如下
  • 管理多租户 ArangoDB 连接

    我使用 ArangoDB Go 使用 go driver 并且需要实现多租户 这意味着每个客户都将在单独的数据库中拥有他的数据 我想要弄清楚的是如何使这种多租户发挥作用 我知道为每个请求创建一个新的数据库连接是不可持续的 这意味着我必须维护
  • 为什么Eclipse不需要我配置JDK?

    我最近将 Eclipse 下载到 Windows 7 计算机上 该机器已经有 JRE 但我注意到它没有 JDK 我担心我必须下载 JDK 然后将 Eclipse 连接到它 当我能够在 Eclipse 中直接进行编码 编译和运行时 我感到 愉
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • Clang 工具 (libtooling):将标头搜索路径设置为标准库标头。基础框架

    相关链接http kevinaboos wordpress com 2013 07 23 clang tutorial part ii libtooling example http kevinaboos wordpress com 201
  • 如何在Google AppEngine上设置环境变量?

    我正在尝试在谷歌应用程序引擎上设置和使用环境变量 我的 app yaml 文件如下所示 但是 当我使用 os Getenv mytoken 时 我得到一个空字符串 而不是我设置的实际值 是GAE的bug吗 api version go1 h
  • golang 中 *(*int)(nil) = 0 是什么意思?

    我注意到有一行 int nil 0在功能上throw https github com golang go blob master src runtime panic go L1113 go nosplit func throw s str

随机推荐