makefile – GNU make 3.81:eval函数不工作?

makefile – GNU make 3.81:eval函数不工作?,第1张

概述我最近从GNU make文档中发现了这个引用eval函数的示例代码.我真的很喜欢它,但是当我试图在我的机器上测试(make 3.81 / Debian)时,它所做的只是尝试链接服务器,而不是首先编译c文件?为什么?使3.81不兼容吗? 外壳输出: $makecc -o servercc: no input files 码: PROGRAMS = server client s 我最近从GNU make文档中发现了这个引用eval函数的示例代码.我真的很喜欢它,但是当我试图在我的机器上测试(make 3.81 / Debian)时,它所做的只是尝试链接服务器,而不是首先编译c文件?为什么?使3.81不兼容吗?

外壳输出:

$makecc     -o servercc: no input files

码:

PROGRAMS    = server clIEnt server_OBJs = server.o server_priv.o server_access.o server_liBS = priv protocol clIEnt_OBJs = clIEnt.o clIEnt_API.o clIEnt_mem.o clIEnt_liBS = protocol # Everything after this is generic .PHONY: all all: $(PROGRAMS) define PROGRAM_template =  $(1): $$($(1)_OBJs) $$($(1)_liBS:%=-l%)  ALL_OBJs   += $$($(1)_OBJs) endef $(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog)))) $(PROGRAMS):         $(link.o) $^ $(LDliBS) -o $@ clean:         rm -f $(ALL_OBJs) $(PROGRAMS)
解决方法 我认为如果从定义行中删除=,它将工作
define PROGRAM_template  ...endef

我已经用GNUMake 3.81测试了.至于为什么这个工作和手册中的版本没有,我不知道.

总结

以上是内存溢出为你收集整理的makefile – GNU make 3.81:eval函数不工作?全部内容,希望文章能够帮你解决makefile – GNU make 3.81:eval函数不工作?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1247583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存