这是新手问题。假设我在一个名为“ myprogram”的目录(此处以root用户身份启动的存储库)中有一个Go代码。我写了一些分成几个子目录的软件包。
然后我有
存储库,根目录
myprogram----------- package1----------- package2----------- package3
然后在myprogram目录中,使用主程序的主程序包编写代码,并且主程序将调用子目录中定义的所有程序包,如下所示:
main.go
import "github.com/username/package1"
import "github.com/username/package2"
import "github.com/username/package3"
func main() {
package1.Function1()
....
}
然后我可以使用以下代码运行代码
$ go run main.go
到目前为止,我没有问题。但是,如果该程序具有某些带有标志的功能,该怎么办?
$ go run main.go flag1 flag2
这可行,但是我想运行类似的东西
$ myprogram
$ flag1
....
$ flag2
因为所有程序和源代码都将包含在myprogram目录下,该目录也是项目,存储库的名称
myprogram----------- package1----------- package2----------- package3
我们使用命令运行Vim,类似这样...
$ vim
总而言之,如何使我的程序通过命令而不是通过go run main运行?
我可以参考任何开源资源库吗?或者,请让我知道要阅读的软件包或文档。我尝试过
go install
但是无法使其如我所愿。
非常感谢!
使用go build
。这将在当前目录中创建包的可执行文件。您也可以运行go build <packagename>
,这会在$GOPATH/bin
中创建一个二进制文件。
看看this one