Golang中解决无法加载包:找不到包“.”的问题

Golang中解决无法加载包:找不到包“.”的问题 我有两个存放Golang项目的文件夹。第一个文件夹中的所有项目都能正常工作,但另一个文件夹中的所有项目都出现"无法加载包:包 .:无法在以下位置找到包’.’"的错误。

  1. E:/Clouds/hubiC/GoLang/test/test.go
  2. E:/Clouds/OneDrive/CX/GoLang/test/test.go

使用相同的代码…

package main

func main() {
    println("Hi")
    return
}

第一个项目一切正常:

c:/go/bin/go.exe build -i [E:/Clouds/hubiC/GoLang/test] 成功:进程退出代码为0。

第二个项目出现问题:

c:/go/bin/go.exe build -i [E:/Clouds/OneDrive/CX/GoLang/test] 无法加载包:包 .:无法在以下位置找到包’.’:E:\Clouds\OneDrive\CX\GoLang\test 错误:进程退出代码为1。

为什么会发生这种情况?

我使用的Go版本是:

go version go1.10 windows/amd64

谢谢!


更多关于Golang中解决无法加载包:找不到包“.”的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

OneDrive中的某些内容让读者感到困惑。这在Erlang生态系统中也是一个问题。这与Windows处理符号链接的方式有些关联。虽然我没有完全理解Erlang中的具体问题,但我了解这个普遍存在的现象。

更多关于Golang中解决无法加载包:找不到包“.”的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个问题通常与Go模块(module)配置或GOPATH环境变量有关。从错误信息看,Go工具无法识别第二个目录为一个有效的包路径。以下是几种可能的解决方案:

1. 检查并初始化Go模块

在第二个项目目录中初始化Go模块:

cd E:\Clouds\OneDrive\CX\GoLang\test
go mod init test

然后重新构建:

go build

2. 检查GOPATH配置

确认你的GOPATH是否包含项目目录。检查当前GOPATH:

go env GOPATH

如果第二个目录不在GOPATH中,可以将其添加到GOPATH:

set GOPATH=%GOPATH%;E:\Clouds\OneDrive\CX\GoLang

或者在项目目录中设置局部环境变量:

set GOPATH=E:\Clouds\OneDrive\CX\GoLang
go build

3. 目录结构问题

确保目录结构符合Go的约定。正确的结构应该是:

E:\Clouds\OneDrive\CX\GoLang\
├── src/
│   └── test/
│       └── test.go

如果是这种结构,在test目录中执行:

go build test

4. 使用完整包路径构建

如果以上方法都不行,尝试使用完整文件路径:

go build E:\Clouds\OneDrive\CX\GoLang\test\test.go

5. 检查环境变量

验证所有Go相关的环境变量:

go env

特别关注GOPATH、GO111MODULE和GOROOT的值。

最可能的原因是第二个目录没有正确配置为Go工作空间的一部分,或者缺少go.mod文件。建议首先尝试第一种解决方案(初始化Go模块),这通常能解决此类问题。

回到顶部