我是靠谱客的博主 体贴镜子,最近开发中收集的这篇文章主要介绍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”所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部