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

时间:2012-10-20 22:37:12

标签: c compiler-construction configure g-wan

当我修改g-wan附带的hello.c以包含带有#define TEST_VALUE 50的简单头文件并将其输出到hello.c文件中时,我注意到对头文件的更改没有触发g-更新想更新servlet。因此,如果我将头文件测试值更改为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位

2 个答案:

答案 0 :(得分:1)

  

这是预期的行为吗?

  

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

没有。程序员在过去30年中(至少)使用了更好的方法。

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

更改标题后,只需touch hello.c servlet。

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

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

答案 1 :(得分:0)

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

Update servlet_dependencies

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