【问题标题】:Is there a tool to generate makefiles and resolve the dependencies? [closed]是否有生成 makefile 和解决依赖关系的工具? [关闭]
【发布时间】:2015-09-09 13:59:23
【问题描述】:

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

【问题讨论】:

    标签: c makefile


    【解决方案1】:

    有免费的工具 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 ...从哪里搜索包含头文件
    • --root-libraries ... 在哪里搜索库
    • --root-objects ... 在哪里搜索对象

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

    hwut sols "module-to-test.c"

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

    【讨论】:

    • 谢谢,这确实满足我的需要
    【解决方案2】:

    Cmake 将部分满足您的要求。您总是可以从一个强大的项目模板开始。

    我建议你看看c-template

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

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

    【讨论】:

    • 谢谢,我去看看。
    【解决方案3】:

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

    【讨论】:

    • 事实并非如此,但这仍然是一个有趣的选择。谢谢
    猜你喜欢
    • 2023-04-06
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多