当我修改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位
答案 0 :(得分:1)
这是预期的行为吗?
是
这意味着在具有许多依赖项的开发期间,如果所做的所有更改都在依赖项文件中,则需要更新主servlet文件中的一个字符以触发重新编译。
没有。程序员在过去30年中(至少)使用了更好的方法。
touch
Unix命令正在更新文件的时间戳而不更改其内容。
更改标题后,只需touch
hello.c
servlet。
另请注意,C头应该比C文件更“稳定”。存储在标头中的内容是由许多C文件共享,因此您应该考虑使用经常更改的defines
的C文件。
至少你现在知道如何处理两种情况。
答案 1 :(得分:0)
我也遇到了这个问题所以我创建了一个servlet来帮助我解决它。使用这个我不需要更新我的CSP文件夹上的每个文件。我在我的博客上发布了代码。
该脚本只对CSP文件夹下的所有文件运行touch命令。