2014-10-04 65 views
0

我在想要將我的Go Web服務器組織成包的時候。目前我有一些文件中的一切,我只需輸入:'go run server.go foo.go bar.go'GOPATH和Go Web服務器:'go run myserver.go'

如何組織我的文件,所以我不需要向文件添加文件命令行。我調查了GOPATH變量,但它似乎不起作用。

我將我的文件移動到src /子目錄。

myserver/src/server.go 
myserver/src/foo.go 
myserver/src/bar.go 

不應該'去運行'搜索$ HOME/MYSERVER/src目錄所有文件去?

我試過這些例子,但他們不工作。

go run server.go; # Doesn't work 
go run src/server.go; # Doesn't work 

順便說一句,所有的文件都在「包主」

回答

1

此信息覆蓋很好的golang.org

閱讀this如何編寫Go代碼

而且this約組織去代碼

提示:您可以運行go run *來運行文件夾中的所有文件

你上面的例子應該是這個樣子

$GOPATH=$HOME 

的GOPATH應該有:

$GOPATH 
    src/ 
    pkg/ 
    bin/ 

$GOPATH/src是您將存儲您的源代碼,各走各的項目

$GOPATH/src/myserver會包含你的myserver程序

cd到$GOPATH/src/myserver和運行go install,現在您將有您的myserver二進制位於$GOPATH/bin/myserver

加入你的bin的位置,你的路徑export PATH=$PATH:$GOPATH/bin,你可以運行myserver開始你的圍棋程序

0

go run會尋找當前工作目錄中的文件(或通配符)。

如果你想從任何地方運行您的程序,或者使用go build一樣,你會go run和移動二進制文件在適當情況下,或者更好的,請將您的$GOBIN環境變量,並將其添加您的$PATH - 然後運行go install *在你的項目目錄。

這也可能是一個好主意,爲項目製作特定的目錄,而不是隻是傾銷它全部在$GOPATH/src