在golang中安装,不创建子包存档

在golang中安装,不创建子包存档,go,Go,我在golang中创建了一个名为go orm的包,其结构如下 go-orm --| mine.go --| src -----| src.go -----| db --------| DBConnection.go 当我在GOORM目录中运行命令“go install”时,它只创建了 转到orm.a,而不是src.a和db.a(子目录或包)。当我检查时 使用它创建的mgo包“go install”。为其子目录“bson”创建一个文件 我的软件包需要相同的功能。我的工作需要什么改变 使之成为可能

我在golang中创建了一个名为go orm的包,其结构如下

go-orm
--| mine.go
--| src
-----| src.go
-----| db
--------| DBConnection.go
当我在GOORM目录中运行命令“go install”时,它只创建了 转到orm.a,而不是src.a和db.a(子目录或包)。当我检查时 使用它创建的mgo包“go install”。为其子目录“bson”创建一个文件

我的软件包需要相同的功能。我的工作需要什么改变 使之成为可能的包

编辑1 我的包在GOPATH/src/目录中。我的所有子包(src和db)都存在

走小路

Go路径是包含Go源代码的目录树列表。信息技术 咨询以解决标准中找不到的导入 去树上。默认路径是GOPATH环境的值 变量,解释为适用于操作系统的路径列表 系统(在Unix上,变量是以冒号分隔的字符串;在Windows上, 以分号分隔的字符串;在计划9中,为列表)

Go路径中列出的每个目录必须具有规定的结构:

src/目录保存源代码。“src”下面的路径决定 导入路径或可执行文件名

pkg/目录保存已安装的包对象。就像在围棋树上一样, 每个目标操作系统和体系结构对都有自己的 pkg的子目录(pkg/GOOS_GOARCH)

如果DIR是Go路径中列出的目录,则在 DIR/src/foo/bar可以作为“foo/bar”导入,并具有其编译形式 安装到“DIR/pkg/GOOS_GOARCH/foo/bar.a”(或者,对于gccgo, “DIR/pkg/gccgo/foo/libbar.a”)

bin/目录保存已编译的命令。每个命令都是为其命名的 它的源目录,但只使用最后一个元素,而不是整个 路径也就是说,在DIR/src/foo/qux中包含source的命令是 安装到DIR/bin/qux,而不是DIR/bin/foo/qux。foo/is 剥离,以便您可以将DIR/bin添加到路径中以获取 已安装的命令

下面是一个目录布局示例:

GOPATH=/home/user/gocode

/home/user/gocode/
    src/
        foo/
            bar/               (go code in package bar)
                x.go
            quux/              (go code in package main)
                y.go
    bin/
        quux                   (installed command)
    pkg/
        linux_amd64/
            foo/
                bar.a          (installed package object)
使用规定的目录结构,包括使用
src
作为目录名。仿效这个例子。不要使用
src
pkg
bin
作为包名

go-orm
--| mine.go
--| src     <== !? Don't use src as a package name.
-----| src.go
-----| db
--------| DBConnection.go
go-orm
--|我的,去吧
--|src
我能做到这一点。我在根目录中创建了一个名为create_archieve.go的额外文件
目录(GOORM)。在里面,我刚刚插入了以下几行
转到orm.a、src.a和db.a

创建_archieve.go 包nosql_orm


导入“go orm/src/db”

是否执行
DBConnection。go
以“
包go orm/src/db
”开头?您的
$GOPATH
环境变量是否引用了
/path/to
,并且
src/go orm
文件夹立即在其中?而你的.a是在
$GOPATH/pkg//go-orm
中生成的。我在$GOPATH/pkg/中得到了go-orm.a。但是像src和db这样的子包的档案并没有被创建。当最终用户运行“go get mypackage_path”时,我需要所有的归档文件(go orm.a、src.a和db.a)才能使我的包正常工作。然后让我们检查一下您的源文件是如何组织的。您的来源是否在
$GOPATH/src/go orm
中?你能回答我最初关于
DBConnection.go
的问题吗?文件夹
$GOPATH/src/go orm/src/db
是否存在?my DBConnection.go以“package db”而不是“package go orm/src/db”开头。不允许使用“包go orm/src/db”。我们无法在那里指定路径。我更新了我的问题来回答你的其他问题。
After long analysis I found that "import" statement in root directory go file