我是靠谱客的博主 体贴镜子,最近开发中收集的这篇文章主要介绍Go语言:引用私有包报错“named files must all be in one directory”,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
"named files must all be in one directory" 这个报错实际上是项目私有包(package)的文件组织与引用的问题。示例如下:
$GOPATH/src/hd-backend/
├── go.mod
├── go.sum
├── httptest.go
├── httputils
│ └── http_utils.go
httptest.go
package main
import (
"fmt"
"hd-backend/httputils"
)
func main() {
resp, err := httputils.Get("http://127.0.0.1:9527/stat")
if err != nil {
fmt.Printf("%vn", err)
return
}
fmt.Printf("%sn", resp)
}
./httputils/http_utils.go
package httputils
import(
"net/http"
"io/ioutil"
)
func Get(urlstr string)(string, error){
resp, err := http.Get(urlstr)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(body), nil
}
运行报错:
[root@dev hd-backend]# go run httptest.go ./httputils/http_utils.go
named files must all be in one directory; have ./ and ./httputils/
go run命令后面后面所有*.go文件都必须在项目的根目录下,不能有子目录。正确的运行命令如下:
[root@dev hd-backend]# go run httptest.go
最后
以上就是体贴镜子为你收集整理的Go语言:引用私有包报错“named files must all be in one directory”的全部内容,希望文章能够帮你解决Go语言:引用私有包报错“named files must all be in one directory”所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复