假设您有一个包含大量 Makefile 的项目结构,并且有一个包含所有其他 Makefile 的顶级 Makefile。
你怎么能列出所有可能的目标?
我知道写作
make
Run Code Online (Sandbox Code Playgroud)
然后点击获取建议通常可以解决问题,但在我的情况下有 10000 个目标。这样做会传递更多结果,并且由于某种原因滚动列表会导致冻结。还有其他方法吗?
Chr*_*own 44
这是 bash 完成模块make
获取其列表的方式:
make -qp |
awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}' |
sort -u
Run Code Online (Sandbox Code Playgroud)
它打印出以换行符分隔的目标列表,无需分页。
FreeBSD 和 NetBSD make(1) 有一个名为 的内置变量.ALLTARGETS
。你可以像这样打印出它的内容
make -V .ALLTARGETS
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会打印出一个以空格分隔的列表。我发现以下内容更有用
make -V .ALLTARGETS | tr ' ' '\n'
Run Code Online (Sandbox Code Playgroud)
它在自己的行上打印出每个目标。
归档时间: |
|
查看次数: |
25553 次 |
最近记录: |