Haa*_*hii 31 makefile wildcard gnu-make
在我的Makefile中,我需要获取其他目录中存在的所有目录的列表.
要获取与Makefile我使用的文件夹相同的所有目录的列表:
DIRECTORIES = $(wildcard */)
all:
    echo $(DIRECTORIES)
哪个工作正常,并给我所需的清单.但是,如果我想要使用另一个目录中的所有目录的列表
DIRECTORIES = $(wildcard ../Test/*/)
all:
    echo $(DIRECTORIES)
我得到的所有文件(路径)在该目录中,包括列表.h和.cpp文件.
任何建议为什么会发生这种情况以及如何解决它?其他获得该清单的解决方案也是受欢迎的.
Lei*_*Mou 39
使用sort和dir功能wildcard:
DIRECTORY = $(sort $(dir $(wildcard ../Test/*/)))
从GNU make手册:
$(dir names ...)以名称提取每个文件名的目录部分.文件名的目录部分是通过(并包括)其中最后一个斜杠的所有内容.如果文件名不包含斜杠,则目录部分为字符串'./'.
$(sort list)按词汇顺序对列表中的单词进行排序,删除重复的单词.输出是由单个空格分隔的单词列表.
另请参阅本文中的第二种和第三种方法:自动创建目录列表
reg*_*his 16
尝试:
$(shell find <directory> -maxdepth 1 -type d)
它将为您提供给定目录中的目录列表,而无需进入子目录.您可能需要清除该列表了,因为它会包括.和./列出的每个目录之前.
| 归档时间: | 
 | 
| 查看次数: | 28481 次 | 
| 最近记录: |