makefile - 包含父文件夹`..`的目标
问题描述
如果我的 makefile 中的 preqequisite 引用了例如,则不会运行%/../some.file
配方。%/../some.file
我的 makefile 包含一个食谱
dir/file:
recipe
%/file2: %/../file
recipe
其中 % 与dir/subdir
. 如果我make dir/subdir/file2
,抱怨它知道No rule to make target dir/subdir/file2
。即使我make dir/subdir/../file
,它也知道No rule to make target dir/subdir/../file
。但是,如果 Imake dir/file
和make dir/subdir/file2
,一切正常。
显然,引用父目录在先决条件中有效,但在目标中无效。你知道如何解决这个问题吗?
解决方案
看起来 Make 确实将 '..' 字面上作为文件夹名称,而没有意识到它指的是父文件夹。因此“文件”与“子目录/../文件”不同。从技术上讲,这是真的,因为 'subdir' 可能是一个符号链接,但我找不到对此的任何引用。
helper
解决方法:为每个文件夹添加依赖项
dir/%/../file: dir/file
它并不完美,因为 '%' 可以匹配 dir/x1/x2/file。但是根据源树的结构,它可能就足够了。
我注意到以下将起作用:
dir/subdir/../file: dir/file
但是只有当可以枚举的文件很少时它才会起作用。
推荐阅读
- c# - 无法执行 Cookie 身份验证:SignInAsync 和 AuthenticateAsync 不成功
- php - 如何根据索引php合并两个数组?
- javascript - 为什么将异步等待放在数组映射回调中?
- postgresql - 使用 postgresql 和 typeorm 命令获取 100km 内的实体
- loops - 如何根据数据框日期范围自动调整带有 seaborn 的 xlim
- php - CakePHP 3:保存 hasOne 关联($_accessible 未设置)
- model - 如何使用 VGG19 迁移学习预训练
- python - 合并其他列匹配的数据框的值
- python - 为什么 pandas read_csv 能够找到文件但 os.listdir 不能?
- r - 如何使用 insertUI 在 Shiny 应用程序中将 textInput 转换为输出