猿问

去安装不工作

我使用go version go1.5.1 linux/amd64的debian 8.2 3.16.0-4-amd64。我golang使用https://golang.org/doc/install安装。


这是我放在我的~/.profile文件中的内容


export GOPATH=$HOME/go

export PATH=$PATH:/usr/local/go/bin:/home/shivams/go/bin

go env在我的机器上运行给出了这个输出


GOARCH="amd64"

GOBIN=""

GOEXE=""

GOHOSTARCH="amd64"

GOHOSTOS="linux"

GOOS="linux"

GOPATH="/home/shivams/go"

GORACE=""

GOROOT="/usr/local/go"

GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"

GO15VENDOREXPERIMENT=""

CC="gcc"

GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"

CXX="g++"

CGO_ENABLED="1"

里面的目录结构/home/shivams/go是{pkg,src,bin}. 在 src 目录中,它就像test/hello.go.


如果我在srcdir 中并运行go run test/hello.go它,它将完美运行。此外,如果我运行go build test/hello.go它会hello在同一目录中创建一个可执行文件。


但是,如果我尝试运行,go install test/hello.go则会出现此错误 go install: no install location for .go files listed on command line (GOBIN not set)。如果我GOBIN明确设置,那么我将看不到此错误。


根据我的理解,如果设置了 GOPATH,则无需设置 GOBIN 变量。


我在这里错过了什么吗?这是我第一次尝试去但无法使其正常工作。


偶然的你
浏览 185回答 2
2回答

蝴蝶不菲

正如@JimB 所说,install是为包设计的命令。只是给你一个明确的例子,这是我运行go env命令时得到的。GOARCH="amd64"GOBIN="/Users/quazinafiulislam/Code/go/ogolang/bin"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/Users/quazinafiulislam/Code/go/ogolang"GORACE=""GOROOT="/usr/local/Cellar/go/1.5.1/libexec"GOTOOLDIR="/usr/local/Cellar/go/1.5.1/libexec/pkg/tool/darwin_amd64"GO15VENDOREXPERIMENT=""CC="clang"GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"CXX="clang++"CGO_ENABLED="1"您将看到GOPATH设置为我的项目根目录~/Code/go/ogolang. 现在,让我们看看我的项目根目录中有什么。.├── bin├── pkg│   └── darwin_amd64└── src    ├── bitbucket.org    ├── github.com    ├── golang.org    ├── words    └── wordtest如您所见,我有几个包。其中之一是wordtest。我可以go install在words或wordtest包上使用 a 。所以,让我们运行go install words看看目录会发生什么。.├── bin│   └── words├── pkg│   └── darwin_amd64└── src    ├── bitbucket.org    ├── github.com    ├── golang.org    ├── words    └── wordtest现在,我们可以看到我们words为我们创建了一个二进制文件(在bin目录中),我们可以通过调用./bin/words.

梵蒂冈之花

根据Games Brainiacgo install 对软件包的工作是正确的。但是让我添加一些关于在主目录中使用 go install 创建包的细节。  .  ├── bin  │   └── app  ├── pkg  │   └── linux_amd64  |         └── user  |              └── handlers.a  └── src    ├── bitbucket.org    ├── github.com         └── user              └── app                   ├── main.go                   └── handlers                         └──handlers.go看看上面的目录结构,我在一个包含源文件的文件夹处理程序中创建了一个包handlers.go。我想构建那个包,我将go build在 handlers 文件夹中运行,它只是显示我们的文件没有编译错误并且在这种情况下不返回任何内容.要使用主文件构建包,我们需要go install在 app 文件夹中运行。这将在内部创建 handlers.a 包对象,$GOPATH/pkg并在其中创建$GOPATH/bin带有文件夹名称的可执行文件(app in this case),我们在其中使用包 main 拥有 main.go 文件。
随时随地看视频慕课网APP

相关分类

Go
我要回答