- 论坛徽章:
- 0
|
原帖由 黄药师81 于 2008-1-8 17:34 发表 ![]()
.cpp.o:
@echo "\n\tBuilding $@ ...\n"
xlC -c -g $(INCDIR) $<
$< 被称为自动化变量,表示该规则中所有依赖目标的集合
但上述规则无依赖目标,但是我编译时我发现$
为什么叫没有依赖目标? .cpp.o是描述的是一条通用规则,指定了如何从*.cpp编译成*.o,换而言之,也就是表明了, 假如要生成一个a.o文件, 就要依赖于一个a.cpp文件. 设定该规则后,如果你执行 make abc.o, 那么它会自动寻找abc.cpp文件作为依赖目标来执行编译脚本, 因此$<就是abc.cpp, $@就是abc.
类以的通用规则还有:
.c.o: #从.c程序编译成.o文件的规则
.cpp: #UNIX下从.c程序直接编译出执行程序的规则
.cpp.exe: #windows下从.cpp编译成.exe执行程序的规则
.l.c: 从词法规则文件生成C代码的规则
.y.c: 从句法规则文件生成C代码的规则
[ 本帖最后由 zszyj 于 2008-1-8 21:34 编辑 ] |
|