我的项目结构如下:
我计划只使用shell脚本(build.sh)来设置GOPATH并构建项目。
我不确定如何正确构建Golang项目,我的短期目标是在src目录中构建软件包并将二进制文件放入bin目录。
我不确定build命令能做什么,我尝试了一些事情。
首先我的问题是 - 这是一个合理的项目结构吗?其次,如何将我的src目录编译为bin?
我所得到的错误如下:
can't load package: package .: no buildable Go source files in /home/oleg/WebstormProjects/oresoftware/stack-server
所以我相信我需要告诉Go查看src
目录,因为Go只在项目根目录中查找.go文件,但我不知道该怎么做。
如果重要,main.go文件的包名称为“main”。
答案 0 :(得分:1)
GOPATH=$PROJECT_DIR && cd $PROJECT_DIR && go install main
同时将main.go文件移动到src / main / main.go。
这将生成bin / main可执行文件。
如果您想要构建多个可执行文件,则必须将每个main.go文件放入单独的文件夹/包中。生成的可执行文件的名称取自文件所在的目录名称。如果要创建二进制文件,main.go文件的软件包名称必须始终为main。
要编译您必须使用的多个可执行文件:
GOPATH=$PROJECT_DIR && cd $PROJECT_DIR && go install ...
...
匹配所有文件夹/包。