GNU Make:如何在列表的每个条目前面添加一个选项
GNU Make: How to add an option in front of every entry of a list
我有一个问题,我想创建一个看起来像这样的变量,
INCDIRS = -I dir0 -I dir1 -Idir2 -I dir3 ... -I dirN
其中 dir1, ... , dirN 是某个基目录base_dir的所有子目录的名称。
我将如何构建此变量? 最初,我认为我可以做到以下几点,
INCDIRS = $(shell for x in `find base_dir -type -d -print`; do echo -I $x; done;)
但这只会导致
INCDIRS = -I -I -I -I ... -I
如果有人能解释如何做到这一点,或者解释为什么我的原始命令得到了它所做的输出,我将不胜感激。 谢谢!
您的INCDIRS
作业中有两个错误。一个是在find
命令中。它应该是find -type d -print
的(或者只是find -type d
;这里的-print
是多余的)。另一个错误是使用$x
。您需要用另一个$
逃离$
:
INCDIRS = $(shell for x in `find base_dir -type d -print`; do echo -I $$x; done;)
您可以先获取目录列表,然后在每个目录前面添加 -I:
SOURCE_DIRS := $(shell find base_dir -type d -print)
INCDIRS = $(addprefix -I,$(SOURCE_DIRS))
如果您需要 $(SOURCE_DIRS) 用于其他内容,这可能会更好。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 在单链表前面添加一个节点后,我无法遍历每个节点
- 为什么在函数参数前面添加 const 会出错?
- "-I" 和 "-L" 在添加到路径前面时是什么意思?
- 如何在链表前面添加和返回节点
- 如何在提升property_tree前面添加节点
- 删除前面元素并将新元素添加到最小堆 (std::p riority_queue)
- 如何将节点添加到链表C++的前面?我想多了这个概念
- 添加到链接列表的前面
- GNU Make:如何在列表的每个条目前面添加一个选项
- 如何在二维矢量前面添加元素
- 我是否正确将项目添加到链接列表前面
- 在文本文件内预先存在的字符串前面添加一个单词
- 将节点添加到链表的前面
- 添加到简单链表的前面
- 如何将元素添加到链接列表的前面
- 正在链接列表前面添加节点
- 我如何在链表的前面添加一个值