【问题标题】:g-wan not updating dependencies of servletsg-wan 不更新 servlet 的依赖项
【发布时间】:2012-10-20 22:37:12
【问题描述】:

当我修改 g-wan 中包含的 hello.c 以包含一个带有 #define TEST_VALUE 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 Server 10.04.4 LTS - 64 位上运行

【问题讨论】:

    标签: c compiler-construction configure g-wan


    【解决方案1】:

    这是预期的行为吗?

    是的。

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

    没有。 (至少)过去 30 年来,程序员一直在使用一种更好的方法。

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

    只需 touch hello.c servlet,当您更改其标头时。

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

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

    【讨论】:

    • 感谢吉尔的澄清。我可以看到让 Web 服务器监视所有文件并确定它们属于谁的资源/速度含义。如果修改了依赖项,是否有像 eclipse 这样的大型 IDE 能够指定主/根文档(例如 hello.c 文件)自动“触及”?我试图找出一种设置商店的好方法,在处理大型项目时忘记“触摸”根文件不会成为问题。谢谢
    • Eclipse 索引所有文件,因此它监控所有内容。请记住,此 IDE 是一个 CLIENT 进程(不是服务器)。
    【解决方案2】:

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

    Update servlet_dependencies

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多