Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C g-wan不更新servlet的依赖项_C_Compiler Construction_Configure_G Wan - Fatal编程技术网

C g-wan不更新servlet的依赖项

C g-wan不更新servlet的依赖项,c,compiler-construction,configure,g-wan,C,Compiler Construction,Configure,G Wan,当我修改g-wan中包含的hello.c以包含一个带有#define TEST_值50的简单头文件并将其输出到hello.c文件中时,我注意到头文件的更改并没有触发g-wan更新servlet的更新。因此,如果我将头文件测试值更改为51,则输出中不会出现任何更改。如果我对hello.c文件进行任何更改,它会导致g-wan重新编译servlet,包括依赖项,并且编译头中的更改。这是预期的行为吗?我很好奇,因为这意味着在具有许多依赖项的开发过程中,如果所做的所有更改都在依赖项文件中,那么只需要更新主

当我修改g-wan中包含的hello.c以包含一个带有#define TEST_值50的简单头文件并将其输出到hello.c文件中时,我注意到头文件的更改并没有触发g-wan更新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服务器10.04.4 LTS上运行-64位

这是预期的行为吗

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

不,在过去的30年里,程序员们使用了一种更好的方法

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

更改其标题时,只需触摸
hello.c
servlet即可

还要注意的是,C头应该比C文件更“稳定”。在头文件中存储的是许多C文件共享的文件,所以您应该考虑使用C文件来定义<>代码>经常更改。
至少你现在知道如何处理这两种情况了。

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


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

感谢Gil的澄清。我可以看到让web服务器监视所有文件并确定它们属于谁所带来的资源/速度影响。像eclipse这样的大型IDE有没有能力指定一个主/根文档,比如hello.c文件,在修改依赖项时自动“触动”它?我正试图找到一个好方法来设置商店,在处理大型项目时,忘记“触摸”根文件不会成为问题。ThanksEclipse为所有文件编制索引,因此它监视所有内容。请记住,此IDE是一个客户端进程(而不是服务器)。