无法修改Makefile时如何跳过make package的部分包安装步骤?
解决方案
下面是几个无需修改Makefile即可跳过对应步骤、解决报错的可落地方法:
方法1:标记目标文件为最新(最推荐)
make的核心执行逻辑是对比依赖文件和目标文件的修改时间,只要目标文件的修改时间晚于依赖,就会自动跳过对应生成步骤。
你可以直接更新报错路径的修改时间,让make判定该步骤已完成:
touch /usr/local/bin/codechecker/tools/plist_to_html/plist_to_html/static/vendor/codemirror
之后再正常执行make package即可跳过该目录的创建步骤。
方法2:执行make时指定跳过对应目标
如果不想修改文件时间,可以在执行make命令时通过-o参数强制指定某个目标已为最新状态,无需重新生成:
make package -o /usr/local/bin/codechecker/tools/plist_to_html/plist_to_html/static/vendor/codemirror
如果有多个需要跳过的目标,重复追加-o 对应路径即可。
方法3:临时替换命令规避报错
如果报错是mkdir遇到已存在目录退出导致的,你可以临时给mkdir默认加上不报错的-p参数,无需改动Makefile:
- 新建一个临时目录,比如
mkdir ~/temp_bin - 在该目录下创建名为
mkdir的脚本,内容如下:
#!/bin/sh exec /bin/mkdir -p "$@"
- 给脚本加执行权限:
chmod +x ~/temp_bin/mkdir - 执行make时临时替换PATH优先级:
PATH=~/temp_bin:$PATH make package
这种方法可以批量解决所有同类mkdir目录已存在的报错。
内容的提问来源于stack exchange,提问作者Demo Demo
相关产品推荐
相关产品推荐

