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

标签 c makefile

<分区>

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

最佳答案

有免费工具 HWUT,这是一个可以完成这项工作的单元测试工具! HWUT at Sourceforge

HWUT 这样做是出于促进单元测试设置的动机。您可以安装“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 ...从哪里搜索包含 header
  • --root-libraries ... 在哪里搜索库
  • --root-objects ...在哪里搜索对象

顺便说一句:有一种“sols”(让我们懒惰的灵魂安全)模式直接为模块中的所有函数生成测试文件,即

hwut sols "module-to-test.c"

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

关于c - 是否有生成 makefile 并解决依赖关系的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481607/

相关文章:

c++ - 子进程如何告诉其父进程创建一个新的子进程?

makefile - 多个目标名称具有相同的结果?

c++ - 编译时是否需要动态库

makefile - 获取makefile目录

c - Visual Studio C 编译器是否具有与 GCC 的 -M 等效的功能?

c - 我正在尝试验证用户输入。但是如果我输入了一个无效的字符,程序就会进入无限循环

c++ - switch 语句结束和下一个语句之间的时间是否确定(独立于路径)?

c - 为什么 %hd 在 scanf 中是必需的?

c - c 如何将字符变量与字符串进行比较?

c++ - 同一文件中的多个对象 - 如何创建 Makefile?