3 回答
TA贡献1828条经验 获得超4个赞
它不起作用,因为您的foobar.go
源文件不在名为的目录中foobar
。go build
并go install
尝试匹配目录,而不是源文件。
设置
$GOPATH
为有效目录,例如export GOPATH="$HOME/go"
移动
foobar.go
到$GOPATH/src/foobar/foobar.go
与建筑应该只是罚款。
建议的其他步骤:
添加
$GOPATH/bin
到您的$PATH
依据:PATH="$GOPATH/bin:$PATH"
移至
main.go
的子文件夹$GOPATH/src
,例如$GOPATH/src/test
go install test
现在应该在$GOPATH/bin
其中创建一个可执行文件,可以通过test
在终端中键入来调用该可执行文件。
TA贡献1841条经验 获得超3个赞
由于您的意思是GOPATH,请参阅fasmat的答案(已批准)
如“如何找回我的包裹? ”中所述,您需要将包裹xxx放在目录中xxx。
请参阅Go语言规范:
package math
一组共享相同文件的文件PackageName形成了包的实现。
一个实现可能要求包的所有源文件都驻留在同一目录中。
该代码组织提到:
在构建导入软件包“ widget”的程序时,该go命令会src/pkg/widget在Go根目录中查找,然后(如果在此处未找到软件包源)src/widget将按顺序在每个工作空间中进行搜索。
(“工作区”是您中的路径条目GOPATH:该变量可以引用多个路径以使您的“ src, bin, pkg”成为)
(原始答案)
您还应该将其设置GOPATH为〜/ go,而不是GOROOT,如“如何编写Go代码”中所示。
Go路径用于解析导入语句。它由go / build包实现并记录在文件中。
在GOPATH环境变量列表地方寻找Go代码。
在Unix上,该值是用冒号分隔的字符串。
在Windows上,该值为分号分隔的字符串。
在计划9中,该值是一个列表。
不同于GOROOT:
Go二进制发行版假定它们将被安装在Windows中/usr/local/go(或c:\Go在Windows下),但是可以将它们安装在其他位置。
如果这样做,则GOROOT在使用Go工具时,需要将环境变量设置为该目录。
- 3 回答
- 0 关注
- 337 浏览
添加回答
举报