在生成文件,${CC} -o myfile myfile.c以及$(CC) -o myfile myfile.c双方即使没有CC的定义,做工精细.我的问题是:
如何使用$()和$ {}?
for dir in ${DIR}; do (cd $${dir}; ${MAKE}); done$ {}和$()之间有什么区别吗?
Mar*_*eck 20
之前的答案是错误的:Make ()和{}Make 之间没有区别.
如果您$$在配方中使用,则会$"转义"并传递给shell.然后壳可以在$()或之间产生差异${}.但这完全取决于shell,与Make或makefiles无关.
在您引用的配方命令中
for dir in ${DIR}; do (cd $${dir}; ${MAKE}); done
Run Code Online (Sandbox Code Playgroud)
做到这一点:
DIR,for ${DIR}和的价值,也可以$(DIR)$$为$("转义",因此$可以传递给shell)MAKEfor 的值${MAKE},再次这可能是$(MAKE).MAKEMake 的值自动设置为正在使用的make可执行文件.${}按照它想要的方式解释剩余的字符串. CC,类似于MAKE默认情况下由Make预先定义的那些变量之一,这就是为什么即使您没有自己设置它也"有效".
顺便说一句,为"目标"编写此配方的更好方法是
.PHONY: $(DIR)
target: $(DIR)
$(DIR):
$(MAKE) -C $@
Run Code Online (Sandbox Code Playgroud)
有关不清楚的事项的说明,请参阅手册.
| 归档时间: |
|
| 查看次数: |
6789 次 |
| 最近记录: |