我有一个很大的C项目有许多单独的文件C和头和许多贡献者。许多捐助者没有一个强大的知识生成和依赖性,造成不少见的问题在这里你几乎总是要"让清洁"之前,你可以信任的"作出"具有产生正确的输出。

如果使用了分钟,这不是一个问题,但它的将近2个小时快速机,现在,人们开始检查工作的代码时,他们让,但他们不洁净的第一和他们的代码最终会破坏建设。不要问为什么这些不是抓到建立管理器之前的一个新基线是切...

是的,我们不应该让它走这么远。

是的,我们教育我们的开发。

像往常一样,我们没有时间停止一切和解决它。

我想有工具以沿着这些线:

  • 是有自动化的工具,以帮助建立正确的依赖信息的现有项目从C和H文件吗?
  • 是有自动化的工具来描述依赖的信息根据的生成文件?
  • 有没有圣杯的一个工具,描述之间的差异上述两种依赖树吗?

但还有什么可以/应该采取解决这个问题呢?

在此先感谢...

-亚当

有帮助吗?

解决方案

这可能是最简单的从作为一个工具,它将自动检测的依赖关系。例如, SCons 不会让你名单的依赖关系,但不是自动分析该文件正在编写并包括。你只需指定的文件应该汇编和文件进入其可执行文件。交换建立的系统将可以更容易的事实,你的开发是不是真的让专家。

另一个选择,如果你坚持使是使用 gcc -M 选择将自动检测的依赖关系。答案的 自动发现C依赖关系 问题如何有你的生成文件自动发现的依赖关系使你不需要指定他们。

其他提示

我们有同样的问题在我的工作场所。继总是破碎之后,合并或检查。

我们设置了一个 连续integation 建立机,并使清洁在大约45分钟相比,大约2个小时在一个开发机。集成服务器调查SVN库,每2个小时用于新的检查程序和启动使清洁。

这样,我们可以监测的确切时建立被打破,并解决它的时候了。我们使用 哈德逊 作为我们持续的一体化服务器时,其自由和开放源,其工作的技术和非常容易建立。再加上用户界面是非常直观,所有其他开发人员喜欢它。

干杯,

规范的方式来解决这是我们编译器自动产生依赖性的信息。像这样的东西(假设海湾合作委员会,只要检查你的编译器,用于类似的选项)

SOURCES=foo.c bar.c

%.d: %.c
    $(CC) $(CFLAGS) -MM $< >$@ 

include $(SOURCES:.c=.d)

GNU作手册中有一章节 自动生成的先决条件.

编辑:我通常让人开始使用 CMake 当他们拥有这样的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top