GOPATH 和 Go Web 服务器 : 'go run myserver.go'

标签 go

我正处于想要将我的 Go 网络服务器组织成包的地步。目前我在几个文件中拥有所有内容,我只需键入:'go run server.go foo.go bar.go'

如何组织我的文件,这样我就不需要不断地向命令行添加文件。我调查了 GOPATH 变量,但它似乎不起作用。

export GOPATH=$HOME/myserver

我将我的文件移动到 src/子目录。

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

'go run' 不应该在 $HOME/myserver/src 中搜索所有 go 文件吗?

我已经尝试过这些示例,但它们不起作用。

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

顺便说一下,所有文件都在“package main”中

最佳答案

此信息在 golang.org 上有很好的介绍

阅读this关于如何写Go代码

this关于组织go代码

提示:您可以运行go run *来运行文件夹中的所有文件

你上面的例子应该是这样的

$GOPATH=$HOME

GOPATH 应该有:

$GOPATH
    src/
    pkg/
    bin/

$GOPATH/src 是存储每个 go 项目源代码的地方

$GOPATH/src/myserver 将包含您的 myserver 程序

cd 到 $GOPATH/src/myserver 并运行 go install 现在你的 myserver 二进制文件位于 $ GOPATH/bin/myserver

将你的 bin 的位置添加到你的路径 export PATH=$PATH:$GOPATH/bin 然后你可以运行 myserver 来启动你的 go 程序

关于GOPATH 和 Go Web 服务器 : 'go run myserver.go' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26195497/

相关文章:

eclipse - goclipse 错误 "resource doesn' t 有对应的 go 包”

utf-8 - 截断 UTF 字符串中的最后一个 rune

google-app-engine - 这些 GAE 库之间有什么区别?

go - 树递归 - 如何避免 'missing return at end of function' ?

forms - 使用 Gomail 创建联系表单

file - 如何从文件中删除最后 N 个字节

go - 替换 viper map 键而不替换整个 map

github - Docker : Could not resolve host: github. com - for go get ./

user-interface - GO GUI帮助(走包)

database - 未找到实体时的正确错误处理