猿问

为什么我不能在 golang 中向我的库中添加 main ?

我在完成应该很容易的任务时遇到了麻烦。我了解代码组织的 GitHub 模型(即使用库的库存储库和应用程序存储库)。我认为这太棒了。但是我经常发现我想mylib在单个main.go文件中捆绑一个简单的可执行文件。本main.go应该是package main和应导入mylib。换句话说,它应该是关于如何构建使用此库的应用程序的准确文档。


我的观点是,因为提供一个简单的命令行界面来包装你的库通常足够方便,所以应该有一种简单的方法来做到这一点,而不必制作另一个 repo,golang 应该会有所帮助。


我想要类似以下内容:


$GOPATH/src/github.com/me/mylib

    mylib.go

    mylib_also.go

    main.go

mylib库 ( package mylib)在哪里并且main.go正在package main运行go install它会生成bin/mylib和pkg/mylib.a。


要么main.go应该导入"github.com/me/mylib"(如果我现在这样做,我会得到循环导入错误)或者go会理解发生了什么,因为应该内置此功能并且存储库中的功能会main.go生成 exec。可能需要导入(并删除循环错误)是更好的方法。


现在,我必须做


$GOPATH/src/github.com/me/mylib

    mylib/

        mylib.go

    main.go

所以我必须导入 github.com/me/mylib/mylib 这很荒谬。


总之,go install应该允许包和 main 的特殊情况,它导入包并提供一个简单的 cli 来演示包 API。GitHub 模型促进了两个 repos,但是将简单的 cli 合而为一应该很容易!


斯蒂芬大帝
浏览 245回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答