Dependencies 非gnu编译器的依赖项生成

Dependencies 非gnu编译器的依赖项生成,dependencies,compilation,Dependencies,Compilation,我使用的是非GNUC编译器,它不支持依赖项生成选项(-MM在gcc中) 在这个软件中,他们不使用makefile。他们正在使用一些古老的windows批处理文件来编译和链接代码 这些批处理文件没有增量生成。我跟踪了批处理文件,发现最后它执行以下命令: compiler.exe-option1-option2*.c linker.exe-foo-bar*.obj 编译需要很长时间,因为即使没有任何修改过的文件,也必须重新编译所有文件 我正在搜索一个从C文件生成依赖项的独立工具。但我没有找到任何人

我使用的是非GNUC编译器,它不支持依赖项生成选项(-MM在gcc中)

在这个软件中,他们不使用makefile。他们正在使用一些古老的windows批处理文件来编译和链接代码

这些批处理文件没有增量生成。我跟踪了批处理文件,发现最后它执行以下命令:

compiler.exe-option1-option2*.c linker.exe-foo-bar*.obj

编译需要很长时间,因为即使没有任何修改过的文件,也必须重新编译所有文件

我正在搜索一个从C文件生成依赖项的独立工具。但我没有找到任何人

编辑:看来我还不够清楚。我无法将批处理文件更改为makefile,这是一个很大的问题。我只想做一些小的改变来支持增量构建


编辑:所需的工具是一个独立的工具,它从c文件生成依赖项。

为什么不获取Make(在Cygwin下)并创建将compiler.exe用作CC的makefile?

GCC生成的依赖项信息实际上是由GNU Make生成的,由GCC驱动程序调用。您可以从很多地方获得GNU make for windows的版本,包括。您也可以考虑在Windows上使用GCC——您可以在.I/P>< P>中获得明文版本。您在项目中有两个依赖项。p>
  • C文件被编译成OBJ文件
  • C文件包括头文件。更改的头文件需要编译C语言,包括文件
  • 第一个主题可以在makefile中使用推理规则编写。这允许只枚举用于链接的OBJ文件

    第二个主题是查找包含的头文件。我不知道一个独立的工具。但是您可以尝试使用C预处理器编写自己的代码。您需要分析此命令的输出:

    cl -E -I<your_include_path> *.c | find "#line"
    
    cl-E-I*.c |查找“#行”
    

    用引号括起来的文件名给出了依赖项。如果文件名以.c结尾,则为目标。在其他地方,这是一种依赖关系。

    如果您只想使用make或gcc,就没有必要使用cygwin。我发现没有cygwin的Windows开发环境非常不适合。当然,您可以运行Make而不使用它,但为什么要这样做呢?问题不在makefile中。问题在于使用gcc-MM生成依赖项。我只是想确定,没有gcc,如何生成依赖项?当然,我可以使用GCC来生成依赖项,但如果有独立的工具,它会更好。对不起,我首先误解了它。我会试试这个:)