在golang中安装,不创建子包存档
我在golang中创建了一个名为go orm的包,其结构如下在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”创建一个文件 我的软件包需要相同的功能。我的工作需要什么改变 使之成为可能
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