我有一个看起来像这样的项目结构:
我当时正计划仅使用Shell脚本(build.sh)设置GOPATH并构建项目。
我不确定如何正确地构建Golang项目,我的短期目标是仅在src目录中构建软件包并将二进制文件放入bin目录。
我不确定go 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”。
最佳答案
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 ...
...
与所有文件夹/程序包匹配。关于go - 正确构建Golang项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41710989/