回答
[email protected] The file name of the target.
$< The name of the first dependency.
有关详细信息:Makefile symbol reference
链接不再工作 – 2012-06-19 10:43:03
[email protected]
正在建设目标的名称 - 正在创建的程序或目标文件。
$<
是使其重建的文件的名称是文件'其存在允许为目标选择推理规则'的文件的名称。
在这个例子中,你可能有:
program.o: program.c
${CC} ${CFLAGS} -c -o [email protected] $<
在这种情况下,[email protected]
是 'program.o' 和$<
是 'program.c'。 (由于“-c
”选项,该规则必须生成目标文件。)
要小心'$ <';如果有一个比程序更新的标题,'$ <'会改为匹配 - 然后编译行将不起作用。如图所示,虽然它足够安全。关于 '$ <'
贝塔评论...
的 '制作' 的定义POSIX说:
$<
在推理规则中, $ <宏应评估为其存在允许推断的文件名规则被选为目标。在.DEFAULT规则中,$ <宏应评估为当前目标名称。其他未指定$ <宏的含义。
例如,在.c.a推理规则中,$ <代表先决条件.c文件。
所以,我给的例子, '$ <' 在技术上是 '未指定'。而且,在正确的背景下, 具体做法是:
.c.o:
${CC} ${CFLAGS} -c -o [email protected] $<
然后 '$ <' 无条件 'progname.c' 当 'progname.o' 正在建设中。
'make'的某些版本曾经用它来做奇怪的事情; GNU Make(3.81)和Solaris 10似乎都表现得很健全。我怀疑是因为时间扭曲而陷入困境。我用下面的Makefile:
all: x.o
x.o: x.c
${CC} ${CFLAGS} -c -o [email protected] $<
x.o: x.h
我用 'echo "int main(){return 0;}" > x.c
' 和 'echo > x.h
' 创建的代码。从'x.c'和'x.h'中触发哪个文件并不重要;无论哪种方式,汇编都是“正确的”。我有一个旧的衍生产品,大约在1992年,它与大多数时间的Sun MAKE都兼容,它错误地处理了它。
第七版UNIX程序员手册说:
的规则以创建后缀文件S2依赖于类似命名的文件,后缀S1指定 作为一个条目“目标's1s2。在这样的条目中,特殊的宏$ *代表目标名称,其中后缀名已删除 ,完整目标名称为$ @,需要完整列表的$ <,以及$?对于过期的先决条件列表 。
它没有说任何关于它的含义。我注意到,第7版'make'会列出'$ c $'和'x.h'为'$ <' - 但POSIX表示这是不正确的。
太阳“让用户指南”(16修订版A 1987年3月)说:
$<
依赖文件的名称,因为如果选择通过make
为使用一个隐含的规则。
或多或少符合您现在看到的内容。
唉,这就是生活;事物在你周围变化。有时你发现它发生了;有时候你没有。
- 1. makefile符号$ @和$ <是什么意思?
- 2. makefile中的$ <和$ @意味着什么?
- 3. 什么是Swift上的+++和<<<?
- 4. 什么是makefile中的CPP_LINK?
- 5. 什么是Makefile目标`.c.o`?
- 6. makefile的用途是什么?
- 7. 什么是makefile的C++的
- 8. ASP.NET - <%@和<asp:Panel?是什么意思?
- 9. 什么意思是“:”在<%中:和<%=有什么区别?
- 10. 什么是<NS0:什么?
- 11. wcout << L是什么?
- 12. 通配符Makefile中(这是什么$(1)是什么意思?)
- 13. 什么是<%= ... %>
- 14. makefile中链接的顺序是什么?
- 15. 这些Makefile结构是什么意思?
- 16. 是什么!<是什么意思?
- 17. 的makefile,什么是几个子目录
- 18. 头文件和makefile的格式和用途是什么? (C)
- 19. 从makefile写入makefile的最佳方法是什么
- 20. THREE.Camera.prototype.lookAt</ <() -</ <是什么意思?
- 21. 什么是HttpCallback <T>中的目的和什么是T?
- 22. 这是什么算子<<< bash
- 23. 什么是<%: %>
- 24. 什么是<#= #>
- 25. Makefile中“dollar less than”是什么意思?
- 26. “@”在makefile中的含义是什么?
- 27. 是什么意思的Makefile在CUDA common.mk
- 28. 在Makefile中,CC?=是什么意思?
- 29. makefile中.refresh的用途是什么?
- 30. Makefile中'%'的语义是什么?
你在'make'上读过哪些文档? http://www.makelinux.net/make3/make3-CHP-1-SECT-5.html? http://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html? Anytthing? – 2010-03-16 14:51:52