如何为包含代码的几个文件夹组成的c项目创建makefile?

时间:2015-03-30 04:18:20

标签: c++ c makefile

这是合约。我有一个包含几个代码构建块的文件夹结构,我无法弄清楚如何创建必要的makefile来编译项目。

我试图制作以下内容,但它不起作用:

我使用向导创建了项目,以便让eclipse自动创建makefile并正确编译。

我发现eclipse自动创建的makefile是在工作区文件夹中创建的,但是我想在项目文件夹中创建它们。

我作为测试所做的基本上是复制我文件夹结构中的所有.mk文件和主要makefile,就像eclipse在工作区中所做的那样,并使用向导中的create empty makefile选项创建一个新项目但是它不编译。

我不知道我还应该做什么或配置使它运作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如评论中所述,有许多方法可以组织构建系统。我通常使用的一个简单方法是:

  1. 有一个共享的编译变量定义.mk文件。

  2. 拥有一个共享的make文件,该文件定义了为不同类型的代码文件构建目标文件的规则,例如.c,.cpp等。此Makefile中还包含构建目标的规则。您可以为目标的不同类型(静态库,共享库,可执行文件)提供多种类型的Makefile。

  3. 在每个文件夹中定义一个make文件,用于填充对象文件列表并定义目标名称。在此makefile中包含Makefile(2)。

  4. 在每个文件夹中调用子文件夹中的Makefile。您可以为每个子文件夹构建静态库,并将它们包含在" main"可执行的Makefile作为依赖。

  5. 如果您不想按步骤3中的定义为每个文件夹/子文件夹编写Makefile。您可以定义一个Makefile来构建文件夹中的每个代码文件并以递归方式调用它。

    我希望它有所帮助。