查看go工具源代码后,阅读此SO答案(和链接文章): What is a sensible way to layout a Go project(将二进制文件与您的应用程序分开)
E.g。以下设置:
myapp/
cmd/
first/
main.go
second/
main.go
third/
main.go
otherpackage/
我很好奇你将如何实施/构建/调试这样的解决方案?
我应该在根目录中有一个main.go,然后以某种方式执行cmd目录中的不同包,具体取决于用户运行的命令?或者如何在root中没有'main'包构建这个多命令包?
答案 0 :(得分:1)
根软件包中不需要if(!isset($_SESSION['c_id'])) {
header("Location: /login_page.php");
// exit();
}
。如果您进入myapp文件夹并运行main.go
,则Go将递归搜索子文件夹中的go install ./...
函数。
对于不同包中的每个main()
函数,Go将在包含所有必需包的单个可执行文件中编译它。在您的示例中,它将生成三个二进制文件:main()
,first
和second
关于实施/调试,你只需按常规方式进行。也就是说,您使用标准测试逐个实现和测试您的软件包。如果要测试已编译的二进制文件,可以使用third
结构。