go build 行为异常
go build behaves strangely
我有以下项目结构
./
lib/ shared library
cmd/
cli/
main.go
srv/
main.go
在 main.go 我有
package main
import "fmt"
func main() {
fmt.Println("cli")
}
来自根文件夹 i 运行 go build ./...
,希望在根文件夹中创建 cli
和 srv
二进制文件,但没有任何反应
但是 运行ning go build ./cmd/cli
确实在根文件夹
中生成了一个 cli
二进制文件
怎么了?
从 Go 1.13 开始,如果您将 -o
标志显式设置为目录,go build
将输出多个可执行文件。因此,例如,mkdir -p ./bin && go build -o ./bin ./...
将构建所有匹配 ./...
的可执行文件并将它们输出到目录 ./bin
.
我有以下项目结构
./
lib/ shared library
cmd/
cli/
main.go
srv/
main.go
在 main.go 我有
package main
import "fmt"
func main() {
fmt.Println("cli")
}
来自根文件夹 i 运行 go build ./...
,希望在根文件夹中创建 cli
和 srv
二进制文件,但没有任何反应
但是 运行ning go build ./cmd/cli
确实在根文件夹
cli
二进制文件
怎么了?
从 Go 1.13 开始,如果您将 -o
标志显式设置为目录,go build
将输出多个可执行文件。因此,例如,mkdir -p ./bin && go build -o ./bin ./...
将构建所有匹配 ./...
的可执行文件并将它们输出到目录 ./bin
.