为什么makefile中wildcard判断文件是否存在不准确

aqiang_00 2013-05-25 11:48:37
测试makefile内容如下:
default:
rm -f ./test_file
touch ./test_file
$(if $(wildcard test_file), \
echo "file exist", \
echo "file not exist")
如果不存在test_file的情况下执行make命令,打印结果是file not exist,请问为什么????
我是在Fedora8下测试的。
...全文
450 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankerZ 2013-06-06
  • 打赏
  • 举报
回复
可能跟文件编码有关系
aqiang_00 2013-06-04
  • 打赏
  • 举报
回复
高手给个解释吧 为什么在此makefile文件执行过程中建立的文件使用wildcard检测不到,而在make命令执行前预先建立的文件则可以正常检测的到,为什么?
空的 2013-05-27
  • 打赏
  • 举报
回复
if $(wildcard test_file) 如果文件存在 是不是就是 if test_file 这个if怎么判?
Carl_CCC 2013-05-26
  • 打赏
  • 举报
回复
引用 2 楼 aqiang_00 的回复:
[quote=引用 1 楼 Idle_Cloud 的回复:] wildcard 只是通配符扩展哦,不能用来确定文件是否存在。
哪里说的wildcard不能用来确定文件是否存在??[/quote] 大哥你看看wildcard的用途。是判断文件是否存在吗,如何判断啊。 小弟还真不会,希望学习一下。
aqiang_00 2013-05-26
  • 打赏
  • 举报
回复
引用 1 楼 Idle_Cloud 的回复:
wildcard 只是通配符扩展哦,不能用来确定文件是否存在。
哪里说的wildcard不能用来确定文件是否存在??
aqiang_00 2013-05-26
  • 打赏
  • 举报
回复
引用 3 楼 Idle_Cloud 的回复:
[quote=引用 2 楼 aqiang_00 的回复:] [quote=引用 1 楼 Idle_Cloud 的回复:] wildcard 只是通配符扩展哦,不能用来确定文件是否存在。
哪里说的wildcard不能用来确定文件是否存在??[/quote] 大哥你看看wildcard的用途。是判断文件是否存在吗,如何判断啊。 小弟还真不会,希望学习一下。[/quote] “wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展 开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任 何符合此模式的文件,函数会忽略模式字符并返回空。 你觉得他能不能判断文件是否存在呢?
Carl_CCC 2013-05-25
  • 打赏
  • 举报
回复
wildcard 只是通配符扩展哦,不能用来确定文件是否存在。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧