在Golang 1.14环境下无法构建/运行项目的问题
在Golang 1.14环境下无法构建/运行项目的问题
$ go version
go version go1.14 darwin/amd64
$cat go.mod
module go-test
go 1.14
我有一个示例项目,其文件夹结构如下: go-test |- src |— server |----- server.go |— test |----- test.go go.mod go.sum
server.go 属于 main 包,而 test.go 属于 test 包。
我使用 go mod init go-test 创建了这个项目,并尝试构建和运行它。
第一个问题是我无法在 server.go 中导入 test 文件夹:
import (
test "go-test/test
)
我无法构建和运行该项目:
user-MacBook-Pro:src $ go build server/server.go
server/server.go:6:2: package go-test/test is not in GOROOT (/usr/local/opt/go/libexec/src/go-test/test)
user-MacBook-Pro:src $ go install
can't load package: package .: no Go files in /Users/c****/go-test/src
user-MacBook-Pro:src $ go get server
go get server: package server is not in GOROOT (/usr/local/opt/go/libexec/src/server)
user-MacBook-Pro:src $ go get server/server.go
go get server/server.go: malformed module path "server/server.go": missing dot in first path element
user-MacBook-Pro:src$ go get . server/server.go
go get .: path /Users/c****/go-test/src is not a package in module rooted at /Users/c****/go-test
更多关于在Golang 1.14环境下无法构建/运行项目的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
你的 go.mod 文件中模块的名称是什么?
更多关于在Golang 1.14环境下无法构建/运行项目的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Go 1.14中使用模块时,项目结构需要调整。模块项目不应使用src目录,而应遵循标准的包布局。以下是正确的项目结构:
go-test/
├── go.mod
├── go.sum
├── server/
│ └── server.go
└── test/
└── test.go
server.go:
package main
import (
"fmt"
"go-test/test"
)
func main() {
fmt.Println("Server starting...")
test.SayHello()
}
test.go:
package test
import "fmt"
func SayHello() {
fmt.Println("Hello from test package")
}
构建和运行命令:
# 从项目根目录构建
$ go build -o server ./server
# 运行
$ ./server
# 或者直接运行
$ go run ./server
如果需要在src目录中工作,修改go.mod中的模块路径:
module go-test/src
然后导入路径改为:
import "go-test/src/test"
但推荐使用第一种标准结构。


