make中是否有一种机制可以允许默认的全局隐式规则在任何地方都可用,类似于内置规则?Make提供了一些内置的隐式规则来编译C / C ++ / Fortran文件,甚至不需要Makefile简单的情况。但是,在编译其他语言(例如Go编程语言文件)时,Makefile始终需要a。我想扩展我的Makeenvironment,使默认情况下可以使用隐式规则。
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
通常这是不可取的,因为这会导致Makefile的可移植性降低。如果其他人的机器没有这样设置,它将无法在其他人的机器上运行。
但是,如果要执行此操作,请使用Go文件的默认规则在某个地方创建一个“全局” Makefile,然后将其路径添加到MAKEFILES环境变量中。运行“ make”时,将在所有Makefile之前先处理此全局Makefile,就像在文件顶部包含其源代码一样。
呼啦一阵风
TA贡献1802条经验 获得超6个赞
虽然我同意dmazzoni的用法,但即使我为Go添加了制作方法Makefile:
# Include default Golang Make magic
include $(GOROOT)/src/Make.$(GOARCH)
# Hack the following line
your_program: your_program.$O
$(LD) -o $@ $^
# Compiles .go-files into architecture-specific binaries
%.$O: %.go
$(GC) -o $@ $^
clean:
rm your_program *.$O
(注意:$ODOLLAR + UPPERCASE -o-不为零!)
尽管我尚未在所有可用的机器上进行过测试,但我认为它应该移植得很好。
- 3 回答
- 0 关注
- 287 浏览
添加回答
举报
0/150
提交
取消