go的多包makefile示例

我正在尝试设置一个多包go项目,例如

./main.go

./subpackage1/sub1_1.go

./subpackage1/sub1_2.go

./subpackage2/sub2_1.go

./subpackage2/sub2_2.go

其中main.go导入subpackage1和subpackage2。subpackage2导入subpackage1。

我一直在寻找go makefile示例,但找不到任何支持这种设置的示例。任何想法?


繁花如伊
浏览 224回答 3
3回答

汪汪一只猫

这样的事情应该工作# Makefileinclude $(GOROOT)/src/Make.$(GOARCH)all:mainmain:main.$O    $(LD) -Lsubpackage1/_obj -Lsubpackage2/_obj -o $@ $^%.$O:%.go  subpackage1 subpackage2    $(GC) -Isubpackage1/_obj -Isubpackage2/_obj -o $@ $^subpackage1:    $(MAKE) -C subpackage1subpackage2:    $(MAKE) -C subpackage2.PHONY:subpackage1 subpackage2# subpackage1/MakefileTARG=subpackage1GOFILES=sub1_1.go sub1_2.goinclude $(GOROOT)/src/Make.$(GOARCH)include $(GOROOT)/src/Make.pkg# subpackage2/MakefileTARG=subpackage2GOFILES=sub2_1.go sub2_2.goinclude $(GOROOT)/src/Make.$(GOARCH)include $(GOROOT)/src/Make.pkgGC+=-I../subpackage1/_objLD+=-L../subpackage1/_objsub2_1.$O sub2_2.$O:subpackage1subpackage1:    $(MAKE) -C ../subpackage1.PHONY:subpackage1如果不安装子软件包,则需要显式设置包含路径。提供的makefile Make.pkg主要用于构建软件包,这就是为什么它仅包含在子软件包makefile中的原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go