我有一个看起来像这样的项目结构:

go - 正确构建Golang项目-LMLPHP
我当时正计划仅使用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/

10-16 23:19