【发布时间】:2023-02-02 07:07:23
【问题描述】:
我想知道是否可以在同一个模块上创建 2 个不同的可执行文件, main1.go -> main1.exe main2.go -> main2.exe
root
-> main2.go
-> main1.go
目标是运行 Makefile,它将创建 2 个不同的可执行文件。 谢谢
LATE_TARGET_HOOK=make_main
LATE_TARGET_HOOK=make_client
DS_CONF = ds.conf
export GOROOT := $(UV_golang_PKG)
export GOPROXY := http://****-product.****.com:****/artifactory/api/go/go
export GOSUMDB := off
export PATH := $(PATH):$(GOROOT)/bin
export VERSION := $(shell (cat $(SRCROOT)/VERSION))
GO =$(GOROOT)/bin/go
CONF_FILES = VERSION
include $(MODULEMK)
ifndef UV_BUILDNUMBER
UV_BUILDNUMBER = 0000
endif
make_main:
${GO} mod tidy
GOARCH=amd64 GOOS=linux CGO_CFLAGS=$(CGO_CFLAGS) CGO_LDFLAGS=$(CGO_LDFLAGS) $(GO) build $(BUILD_FLAGS) -o $(SRCROOT)/CMpub/bin/$(UV_O)/agentExporters .
make_client:
${GO} mod tidy
GOARCH=amd64 GOOS=linux CGO_CFLAGS=$(CGO_CFLAGS) CGO_LDFLAGS=$(CGO_LDFLAGS) $(GO) build $(BUILD_FLAGS) -o $(SRCROOT)/CMpub/bin/$(UV_O)/disableCollector .
【问题讨论】:
-
是的,这是可能的,但不是你的 go build 命令。重构。
-
一个模块可以产生两个可执行文件,但一个包不能。为每个可执行文件创建一个包。
-
它是如何做到的?