2

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

Tim Bolton 注意到了这种行为,因此我决定也对其进行测试,并将其作为与先前线程不同的问题提出。

感谢您的任何意见。

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

4

2 回答 2

1

这是预期的行为吗?

是的。

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

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

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

只是当您更改其标头时touchhello.cservlet。

另请注意,C 头文件应该比 C 文件更“稳定”。头文件中存储的内容可供许多 C 文件共享,因此您应该考虑经常使用 C 文件进行defines更改。

至少你现在知道如何处理这两种情况。

于 2012-10-22T07:42:36.767 回答
0

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

更新 servlet_dependencies

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

于 2012-11-13T15:21:21.577 回答