为了账号安全,请及时绑定邮箱和手机立即绑定

Make中的默认规则

Make中的默认规则

Go
当年话下 2021-04-05 17:18:24
make中是否有一种机制可以允许默认的全局隐式规则在任何地方都可用,类似于内置规则?Make提供了一些内置的隐式规则来编译C / C ++ / Fortran文件,甚至不需要Makefile简单的情况。但是,在编译其他语言(例如Go编程语言文件)时,Makefile始终需要a。我想扩展我的Makeenvironment,使默认情况下可以使用隐式规则。
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

通常这是不可取的,因为这会导致Makefile的可移植性降低。如果其他人的机器没有这样设置,它将无法在其他人的机器上运行。

但是,如果要执行此操作,请使用Go文件的默认规则在某个地方创建一个“全局” Makefile,然后将其路径添加到MAKEFILES环境变量中。运行“ make”时,将在所有Makefile之前先处理此全局Makefile,就像在文件顶部包含其源代码一样。


查看完整回答
反对 回复 2021-04-26
?
呼啦一阵风

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-不为零!)


尽管我尚未在所有可用的机器上进行过测试,但我认为它应该移植得很好。


查看完整回答
反对 回复 2021-04-26
  • 3 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信