在一个文件夹中“构建”多个程序

时间:2018-12-12 12:03:04

标签: go build

我有functions/hello.go个文件

运行go build会在同一目录中创建新的二进制文件functions

我想在functions目录中有两个源文件:hello.gohello2.go,并能够运行go build产生两个二进制文件:{{ 1}}和hello

如何实现?

2 个答案:

答案 0 :(得分:3)

Go软件包的作用域是每个目录。这意味着您在一个目录中只能有一个包,因此最多只能有一个“主”包。 *

您需要创建子目录:

go build functions/...

然后您可以通过以下方式构建它们:

{{1}}

* 从技术上讲,您完全可以通过完全滥用go工具链并指定要编译的特定go软件包来完成所需的组织,而这些软件包优先于目录中的其他文件。这仅适用于最小的程序(基本上是单个.go文件中包含的程序,或少量,易于管理的.go文件中的程序)。这将需要多个命令,此外,永远不要完成< / em>,因此我什至不打算解释如何完成。只需:永远不要这样做!

答案 1 :(得分:1)

您可以拥有2个单独的软件包,两个软件包都带有// Add a group for each cause. var months = svg.selectAll(".month") .data(months) .enter().append("g") .attr("class", "month") .attr("xlink:title", function(d) { return d.key; }) .attr("transform", function(d) { return "translate(0," + y(d.offset / sum) + ")"; }); // Add a rect for each month. var causes = months.selectAll (".cause") .data(function(d) { return d.values; }) .enter().append("a") .attr("class", "month") .attr("xlink:title", function(d) { return d.cause + " " + d.parent.key + ": " + n(d.deaths); }); causes.append("rect") .attr("x", function(d) { return x(d.offset / d.parent.sum); }) .attr("width", function(d) { return x(d.deaths / d.parent.sum); }) .attr("height", function(d) { return y(d.parent.sum / sum); }) .style("fill", function(d) { return color(d.cause); }); func,然后在两个目录中发出以下命令: main