首页 / 知识
使用mkdir时如何防止makefile中的“目录已存在错误”
2023-04-17 13:04:00

how to prevent “directory already exists error” in a makefile when using mkdir我需要在我的makefile中生成一个目录,我不想一次又一次地得到"目录已经存在错误",即使我可以很容易地忽略它。 我主要使用mingw/msys,但也希望在其他shell/系统中工作。 我试过了,但没用,有什么想法吗?
查看官方制作文档,以下是一个很好的方法:
您应该在这里看到管道操作符的用法,它定义了仅限订单的先决条件。也就是说,为了构建当前的目标,应该存在(而不是最近的) 注意我用了 在Unix上,只需使用:
mkdir的-p选项可防止目录存在时出现错误消息。 您可以使用test命令:
下面是我使用GNU make创建编译器输出目录的一个技巧。首先定义此规则:
然后使进入目录的所有文件依赖于该目录中的.d文件:
注意使用$<而不是$^。 最后,防止自动删除.d文件:
跳过.d文件(直接取决于目录)将不起作用,因为每次在该目录中写入文件时都会更新目录修改时间,这将在每次调用make时强制重新生成。 如果目录已经存在对您来说不是问题,您可以为该命令重定向stderr,从而消除错误消息:
在makefile中:
在Windows上
关于UNIX Linux
它也适用于多个目录,例如
添加 它在mingw32/msys/cygwin/linux下工作
如果您显式地忽略返回代码并转储错误流,那么如果发生错误,您的make将忽略该错误:
这不应该造成一个平行的种族危险-但我还没有测试它确定。 比拉尔斯的回答简单一点:
和一般规则:
没有要清理或制作的触摸文件。珍贵的:-) 如果你想看到另一个通用的gmake小技巧,或者如果你对使用最小脚手架的非递归make感兴趣,你可能会想在那个博客中找到两个更便宜的gmake技巧和另一个相关的make文章。 |
最新内容
相关内容
linux下一层目录命令?
linux下一层目录命令?,系统,数据,命令,目录,信息,传播,时间,基础,一致,文件,Linux的下进入下一级的命令有什么?cd 0就可以了 另外告诉你一下,cdlinux命令进入根目录?
linux命令进入根目录?,工作,系统,位置,设备,一致,财务,公司,地址,目录,命令,linux常用命令及用法1、linux常用命令: pwd命令 该命令的英文解linux命令去上一目录?
linux命令去上一目录?,系统,电脑,一致,目录,上级,名称,命令,空格,读法,终端,linux怎么返回上级目录?输入”cd .. “跳到上层、输入cd 跳到自己目录管理linux命令?
目录管理linux命令?,管理,系统,工作,信息,目录,命令,文件,工具,电脑,档案,玩转Linux之目录和文件管理目录树的主要部分有root(/)、/usr、/var、/linux命令生成序列?
linux命令生成序列?,系统,工具,信息,灵活,名称,管理,工作,状态,网络,命令,linux系统符号说明1、通配符:“*”、“?”和DOS下一样,当我们不知道确linux可生成文件命令?
linux可生成文件命令?,名字,命令,名称,文件,文件夹,位置,数据,密码,时间,电脑,linux怎么创建文件重定向符号 通常重定向符号可以创建一个0kb的linux跳至子目录命令?
linux跳至子目录命令?,名字,第一,第三,侄子,女婿,贪官,重典,子目录,丞相,生日,杀了一百多个侄子的血腥君主北燕王洪峰十六国时期,北燕的君主弘linux交换目录的命令?
linux交换目录的命令?,系统,工作,信息,命令,标准,名称,在线,目录,分区,内容,Linux系统常用操作命令有哪些linux系统常用操作命令linux系统常用linux目录操作命令d?
linux目录操作命令d?,工作,系统,信息,命令,情况,基础,数据,名称,地址,目录,linux常用的命令有哪些1、linux系统常用操作命令如下:ls:全拼list,功linux命令错误的是?
linux命令错误的是?,系统,信息,异常,密码,工具,地址,网络,实时,状态,数据,Linux系统中输入命令,输出结果有误是怎么回事?出现以上提示,很多原因linux访问根目录命令?
linux访问根目录命令?,系统,位置,一致,公司,财务,设备,命令,根目录,传播,密码,linux查看路径命令linux命令如果记不得,可以使用man命令来查看某linux显示错误命令?
linux显示错误命令?,信息,系统,电脑,状态,时间,环境,命令,搜狐,密码,异常,虚拟机里怎么开始linux系统,打startx命令提示错误1、第一种:这个问题