build - 去构建 : "Cannot find package" (even though GOPATH is set)

标签 build go package

即使我已经正确设置了 GOPATH,我仍然无法通过“go build”或“go run”来找到我自己的包。我做错了什么?

$ echo $GOROOT
/usr/local/go

$ echo $GOPATH
/home/mitchell/go

$ cat ~/main.go
package main
import "foobar"
func main() { }

$ cat /home/mitchell/go/src/foobar.go
package foobar

$ go build main.go
main.go:3:8: import "foobar": cannot find package

最佳答案

它不起作用,因为您的 foobar.go 源文件不在名为 foobar 的目录中。 go buildgo install 尝试匹配目录,而不是源文件。

  1. $GOPATH 设置为有效目录,例如export GOPATH="$HOME/go"
  2. foobar.go 移动到 $GOPATH/src/foobar/foobar.go 并且构建应该可以正常工作。

其他推荐步骤:

  1. 通过 PATH="$GOPATH/bin:$PATH"
  2. $GOPATH/bin 添加到您的 $PATH
  3. main.go 移动到 $GOPATH/src 的子文件夹,例如$GOPATH/src/test
  4. go install test 现在应该在 $GOPATH/bin 中创建一个可执行文件,可以通过在终端中键入 test 来调用它。<

关于build - 去构建 : "Cannot find package" (even though GOPATH is set),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13214029/

相关文章:

c# - 使用 Visual Studio 2010 从命令行构建 C# 解决方案

go - 获取 websocket session

parsing - 如何使我的 go 解析器代码更具可读性

r - 在Windows R中设置C编译器(CC)

go - 具有相对路径的包布局

适用于 Windows 但不适用于 Ubuntu 的 Java 提示符

svn - Hudson:我如何使用参数化构建来执行 svn checkout 和 svn 标记?

javascript - MVC3 - 如何在 JavaScript 中动态设置 facebook 应用程序 ID?

xml - csproj 文件中项目的顺序是否重要?

go - 结构和接口(interface)类型