g-wan 不更新 servlet 的依赖关系

问题描述 投票:0回答:2

当我修改 g-wan 中包含的 hello.c 以包含一个带有 #define TEST_VALUE 50 的简单标头并将其输出到 hello.c 文件中时,我注意到对标头文件的更改并未触发 g-wan 的更新更新 servlet。 因此,如果我将头文件测试值更改为 51,输出中不会出现任何变化。 如果我对 hello.c 文件进行任何更改,它会导致 g-wan 重新编译 servlet(包括依赖项)并编译标头中的更改。 这是预期的行为吗? 我很好奇,因为这意味着在具有许多依赖项的开发过程中,如果所做的所有更改都在依赖项文件中,则您只需要更新主 servlet 文件中的一个字符即可触发重新编译。

蒂姆·博尔顿注意到了这种行为,因此我决定也对其进行测试,并将其作为与上一个线程不同的单独问题提出。

感谢您的任何意见。

G-WAN 3.3.28 64位(2012年3月28日11:24:16)-我在2012年10月19日下载时看到的最新版本 ...在 Ubuntu Server 10.04.4 LTS - 64 位上运行

c configure g-wan
2个回答
1
投票

这是预期的行为吗?

是的。

这意味着在具有许多依赖项的开发过程中,如果所做的所有更改都在依赖项文件中,则您只需更新主 servlet 文件中的一个字符即可触发重新编译。

不。 (至少)在过去 30 年里,程序员使用了一种更好的方法。

touch
Unix 命令正在更新文件的时间戳而不更改其内容。

当您更改其标头时,只需

touch
hello.c
servlet。

另请注意,C 标头应该比 C 文件更“稳定”。标头中存储的内容会被许多 C 文件共享,因此您应该考虑将 C 文件用于经常更改的

defines

至少你现在知道在这两种情况下如何进行。


0
投票

我也遇到了这个问题,所以我创建了一个 servlet 来帮助我解决它。使用此功能,我不需要更新 CSP 文件夹中的每个文件。我在我的博客上发布了代码。

更新servlet_dependency

该脚本仅对 CSP 文件夹下的所有文件运行 touch 命令。

© www.soinside.com 2019 - 2024. All rights reserved.