是否有工具来生成makefile并解决依赖关系?

我有一个大的源代码树,在里面的某处我有一个带有main函数的文件,我想生成一个makefile而不需要手动解析所有依赖项(包括目录和必要的c文件)。 因此,该工具需要从主文件夹开始搜索并在文件树中上下搜索,以找到与主文件“最接近”的包含文件。

有免费的工具HWUT,一个完成这项工作的unit testing工具! 来自Sourceforge的HWUT

HWUT这样做是出于促进unit testing设置的动机。 你可以安装’ctags’(hwut会自动使用它)。 否则,HWUT使用编译器的目标文件输出(非常慢)分析代码。

有一次,你已经安装了hwut,你可以简单地调用它

> hwut sos your.c --root some/root/dir another/root/dir --args -DMyCompilerArg -DAnother Arg -- 

它将开始在“some / root / dir”和“another / root / dir”中搜索包含文件,源文件,目标文件和库。 从“your.c”文件开始,它将搜索所有必需的引用和标题,并生成格式良好的Makefile。 如果项目仍然太大,您可以指定多个根目录集以分别搜索源,包含和库。

  • –root-sources …用于搜索源的根目录
  • –root-includes …从哪里搜索包含标题
  • –root-libraries …在哪里搜索库
  • –root-objects …在哪里搜索对象

BTW:有一个’sols’(安全我们的laze souls)模式,它直接为模块中的所有function生成测试文件,即

hwut sols“module-to-test.c”

不仅会生成一个Makefile,还会生成一组测试文件,作为编写测试的起点。

Cmake将部分地满足您的要求。 您始终可以从强大的项目模板开始。

我建议你看一下c-template

http://c-template.readthedocs.org/en/latest/

https://github.com/redjack/c-template

注意,如果您已经有一个带有相应包含路径的gcc编译行,您可以让编译器自动生成包含的.h文件的依赖项列表。 请参阅-MM选项 。