【问题标题】:Understanding the folders and files generated by Eclipse了解 Eclipse 生成的文件夹和文件
【发布时间】:2013-01-17 10:47:27
【问题描述】:

问题的简短版本:Eclipse 生成的 objects.mksources.mkmakefilesubdir.mk*.o*.d 文件是什么?


问题的长版:

  1. 在我的主目录中,我有workspace 目录。每当我创建一个项目并将其命名为ProjectName 时,Eclipse 都会在workspace 文件夹中创建一个新目录(也称为ProjectName)。
  2. 在我的项目中,我创建了不同的类,每个类都与 2 个文件相关联(源文件ClassName.cpp 和头文件ClassName.h)。这些文件被放入workspace/ProjectName/src 文件夹中。
  3. 现在我在 Eclipse 中的 Build 我的项目和 workspace/ProjectName 中出现了一个新文件夹。它被称为Debug
  4. 在这个文件夹中只有一个文件,我理解它的功能:ProjectName。它是可执行文件。如果我在命令行中输入它的名字,我的程序就会被执行。
  5. 我不知道另外 3 个文件:objects.mksources.mkmakefile
  6. 另外,在Debug文件夹中有src目录。它包含 subdir.mk 文件,我不知道其含义以及 ClassName.oClassName.d 文件(如果我有 N 个类,则将有 N 对 *.o*.d 文件。)

谁能解释一下这些文件的含义和用途?

【问题讨论】:

    标签: eclipse


    【解决方案1】:

    objects.mksources.mkmakefilesubdir.mk 是 Eclipse 根据您的项目类型(可执行文件、库、共享库)生成的 makefile。有关它们的内容以及它们的工作原理,请参阅工具链的make 命令文档。总之这些都是负责调用编译器和链接器的。

    ClassName.o 是编译器生成的目标文件,它们都将链接到一个可执行文件或存储在一个库中(取决于项目类型)。

    ClassName.d 是一个所谓的依赖引用文件,由编译器(按需)生成并包含在 makefile 中,可以跟踪头文件中的更改,并在必要时重新编译相关的源文件。

    【讨论】:

    • 据我了解,make 文件将目标文件放在一起以获得可执行文件。我不清楚的是为什么我们有这么多的 make 文件。为什么一个还不够?都用了吗?
    • makefile 是主要入口,它包括sources.mkobjects.mksubdir.mk 生成文件。我没有详细介绍那里,但我想这是关于构建系统的更好的结构和更容易(自动化)的管理。在为项目手动设置构建系统时,我们通常会这样做。
    • Make 是一种专门的编程语言,其设计重点是将什么转化为其他内容(.c -> .o -> 可执行文件,或生成文档的任何其他依赖项等)。您只需要在一个源文件中编写最简单的程序之外的任何内容。 make 也是如此;您使用多个文件来实现模块化。
    猜你喜欢
    • 2017-12-25
    • 2013-05-22
    • 2011-09-15
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2013-10-19
    相关资源
    最近更新 更多