Golang环境配置指南
Golang环境配置指南 大家好,
我没有任何Go语言编程经验,但有几年的PHP开发经历。经过研究,发现Go语言非常值得学习。
作为网页开发者,之前没有复杂的环境配置经验,通常只需编写代码并上传文件即可,因此安装Go对我来说是个新挑战。
- 已成功安装Go语言,Go服务器正在我的机器上运行
- 已创建包含src、pkg和bin的新目录
- 已修改GOBIN和GOPATH环境变量
- 已创建hello.go文件
但我无法运行或构建代码。
C:\Users\Bas>go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Bas\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\gocode
set GOPROXY=
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\Bas\AppData\Local\Temp\go-build767200714=/tmp/go-build -gno-record-gcc-switches
C:\Users\Bas>go run d:\gocode\src\hello
package d:/gocode/src/hello: cannot find package "d:/gocode/src/hello" in any of:
C:\Go\src\d:\gocode\src\hello (from $GOROOT)
D:\gocode\src\d:\gocode\src\hello (from $GOPATH)
C:\Users\Bas>
有什么建议吗?谢谢!
更多关于Golang环境配置指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html
在构建代码之前,您应该按照以下方式设置GOPATH环境变量:
set GOPATH=D:\gocode
Bas_van_den_Hooff:
Go 服务器正在我的机器上运行。
什么是“Go 服务器”?你能分享你的 hello.go 代码吗,也许在 一个 Gist 中?
你好,
有点尴尬,但我想我可能把包和编译器(?)安装在了C盘,而我的gocode目录却在D盘。这会不会是问题所在呢?
我更喜欢现在的位置:D盘 > gocode > src、pkg和bin,因为这样非常整洁且易于导航。
我是否应该把GoLang也重新安装到D盘?顺便说一下,我不使用GitHub。
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
我不会将任何源代码放在 $GOPATH 中。我会把它放在我的配置文件/主目录中的任何位置,如果是一个没有外部依赖的简单一/两个文件程序,我会使用例如 go run hello.go 来运行它,或者使用 go build -o hello hello.go 来构建它。
另一方面,如果是一个有外部依赖的程序,我会创建一个文件夹并在其中初始化一个模块:
C:> mkdir hello
C:> cd hello
C:> go mod init github.com/johandalabacka/hello
你实际上可以为你的模块命名任何名称,但如果你使用 GitHub,最好以仓库名称命名。模块是 Go 1.11 中的新功能,并且是未来的方向。遗憾的是,如果你在互联网上搜索,会发现很多人把东西放在 GOPATH 中的例子。在这里阅读更多关于模块的信息:https://github.com/golang/go/wiki/Modules
从你的描述和错误信息来看,问题在于Go模块的组织方式。在Go 1.11及以后版本中,推荐使用Go Modules来管理依赖,而不是传统的GOPATH工作区结构。
首先检查你的目录结构。在D:\gocode\src\hello目录下,应该有一个包含package main声明的Go文件。
以下是正确的设置方法:
- 创建正确的目录结构:
D:\gocode\
└── src/
└── hello/
├── go.mod
└── hello.go
- 在
hello目录中初始化Go模块:
cd d:\gocode\src\hello
go mod init hello
- 创建
hello.go文件示例:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
- 运行程序的正确方式:
# 在hello目录中运行
cd d:\gocode\src\hello
go run .
# 或者指定文件
go run hello.go
# 构建可执行文件
go build
# 安装到GOPATH/bin
go install
- 如果你坚持使用传统GOPATH模式,确保目录结构正确:
D:\gocode\
├── bin/
├── pkg/
└── src/
└── hello/
└── hello.go
然后从hello目录运行:
cd d:\gocode\src\hello
go run hello.go
错误信息显示Go在查找包时路径不正确,这是因为你使用了绝对路径go run d:\gocode\src\hello。Go期望的是包路径而不是文件系统路径。使用Go Modules是现代Go开发的标准做法,建议采用这种方式。

