程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Makefile 和理解通配符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Makefile 和理解通配符?

开发过程中遇到Makefile 和理解通配符的问题如何解决?下面主要结合日常开发的经验,给出你关于Makefile 和理解通配符的解决方法建议,希望对你解决Makefile 和理解通配符有所启发或帮助;

所以我试图开始在现有项目上使用 make 并且我对如何正确使用通配符感到非常困惑。或者至少那是我认为我需要的。 基本上这是我试图运行 fIEldalignment ./**/*copy 的命令。 copy 将是一个将传递到命令中的变量,基本上我只是想搜索整个当前目录和该包的子目录,并针对它运行 fIEldalignment 命令。我在工作。据我所知,“*”应该用通配符替换?但我不完全确定如何。

这是我正在尝试做的事情的基本想法。

checkfIEldalignment: 
    fIEldalignment ./...$(PACK)
fixfIEldalignment : 
    fIEldalignment -fix ./**/*$(PACK)

第一种有效,但也出现错误 3. 不确定这是什么意思。

解决方法

@H_221_2@make 在其 wildcard 函数中实现了标准的 POSIX 风格的 globbing,与传统的 sHell globbing 和 sHell 等 sHell 中的默认 globbing 相同。而且,当 make 调用 sHell 来运行配方时,它总是调用 /bin/sh,而不是用户碰巧运行的任何 sHell。

@H_221_2@make 不实现“扩展”通配符,例如由 zsh 和其他一些 sHell 提供的,或者如果您打开它,则在 bash 中可用。

/bin/sh 是一个 POSIX sHell,或者是到另一个以“POSIX 模式”运行的 sHell 的链接,因此它也不支持扩展的通配符。

因此,此处不提供 ** 等表示“搜索所有子目录”的特殊功能。

您可以使用 find 程序来替换它,如下所示:

fixfieldalignment : 
        fieldalignment -fix $$(find ./ -name '*$(PACK)')

大佬总结

以上是大佬教程为你收集整理的Makefile 和理解通配符全部内容,希望文章能够帮你解决Makefile 和理解通配符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。