循环文件依赖降低了怪异性

蒂姆·林

我正在从 make 文件运行一个小实用程序(使用 GNU Make 3.81)。该实用程序将一种类型的文件转换为另一种类型。例如,文件“ thefile.x ”被转换为“ thefile.xy ”。

目标和制定规则是:

%.x.y: %.x
    convertfile $< $@

all: file1.x.y file2.x.y

这实际上有效(生成了 .xy 文件,但我总是收到消息:

make:循环 thefile.x <- thefile.xy 依赖项已删除。

这只是一个小问题,因为我们不想在一切正常时看到消息。

看过其他“循环依赖”问答,它们似乎都不是我遇到的问题。由于其他技术原因,我无法更改此项目的文件命名约定。

在下面的评论之后,我想澄清我在做什么,因此重现我正在使用的完整 make 文件:

%.js.c: %.js
    js2c $< $@

all: test1.js.c test2.js.c

这是我运行它时的输出,它有一些事情要做:

C:\work\timtest>make
make: Circular test1.js <- test1.js.c dependency dropped.
js2c test1.js test1.js.c
[RomFs] test1.js => test1.js.c
make: Circular test2.js <- test2.js.c dependency dropped.
js2c test2.js test2.js.c
[RomFs] test2.js => test2.js.c

这是无事可做时的输出:

make: Circular test1.js <- test1.js.c dependency dropped.
make: Circular test2.js <- test2.js.c dependency dropped.
make: Nothing to be done for `all'.
疯狂的科学家

您看到这一点是因为 GNU make 有许多内置规则您可以在 GNU make 手册make -p -f/dev/null中查看它们的部分列表,或者运行以查看完整列表。

这些内置规则之一告诉 make 如何从.c文件编译程序在 POSIX 系统上,程序没有特殊的后缀,所以这个内置规则基本上说:

%: %.c ; $(LINK.c) ...

所以这条规则告诉 make 如何foo从文件构建任何文件foo.c……这也意味着 make 可以推断出如何foo.js从文件构建文件foo.js.c既然你也定义了如何建立一个规则foo.js.cfoo.js,这是一个循环依赖,并驱逐的规则之一(内置的规则)。

您需要防止您的.js文件通过像上面那样的匹配任何模式进行匹配如手册中所述,有两种方法可以执行此操作。副作用最少的方法是添加一个空模式规则,提及您的新后缀,如下所示:

%.js:

就是这样。手册中提供了完整的详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.NET字典插入的怪异性能行为

来自分类Dev

新的HTML5元素降低了CSS特异性

来自分类Dev

大块读取文件,怪异的循环

来自分类Dev

大块读取文件,怪异的循环

来自分类Dev

在超过100个不同的正则表达式上循环时,Python re模块的速度降低了20倍

来自分类Dev

SwiftUI更新降低了金属窗的FPS

来自分类Dev

BIOS升级降低了CPU温度

来自分类Dev

Android UI降低了视图setRotation

来自分类Dev

*无信号*并降低了定制PC的功耗?

来自分类Dev

Flash中的库项目降低了导出速度

来自分类Dev

OO Javascript继承降低了两个层次

来自分类Dev

OpenAM J2EE代理安装降低了tomcat

来自分类Dev

RabbitMQ严重降低了同时发布/消费的速度

来自分类Dev

CSS过渡-在线观看时降低了帧频

来自分类Dev

为什么应用高斯滤镜后图像的亮度降低了?

来自分类Dev

Gcc增加的优化降低了Cython执行速度

来自分类Dev

PdfSharp降低了我的jpg输入图像的质量

来自分类Dev

PdfSharp降低了我的jpg输入图像的质量

来自分类Dev

PdfSharp降低了我的jpg输入图像的质量

来自分类Dev

USB硬盘备份的可靠性降低了吗?

来自分类Dev

Android全屏主题降低了显示按钮的高度

来自分类Dev

OpenAM J2EE代理安装降低了tomcat

来自分类Dev

Pulseaudio在屏幕省电的情况下降低了HDMI输出

来自分类Dev

Django smpt 电子邮件后端降低了性能

来自分类Dev

可能的情况是:许多CPU同时读取同一个文件,从而降低了每个CPU的读取速度吗?

来自分类Dev

头文件中的C ++循环依赖

来自分类Dev

包含文件中的循环依赖性

来自分类Dev

JavaScript中的怪异循环

来自分类Dev

python中怪异的循环?