繁体   English   中英

多个.c和.h文件的Makefile

[英]Makefile for Multiple .c and .h files

我有一个1.c 2.c .... nc文件,还有它的依赖项.h文件...我知道要为多个c文件创建make文件。但是我不知道如何为此创建make文件c文件链接到.h文件。 如果我尝试我知道的makefile将给出错误

make: *** No rule to make target '2.h', needed by '2.o'  .Stop.

而且我也不需要这种类型的makefile。

program: main.o dbAdapter.o
   gcc -o program main.o dbAdapter.o

main.o: main.c dbAdapter.h
   gcc -c main.c

dbAdapter.o dbAdapter.c dbAdapter.h
   gcc -c dbAdapter.c

这对于4或5个文件将是很好的。 但是,如果我有大量文件,什么是最佳解决方案?

您可以通过以下方式将所有.h链接到Makefile中:

  1. 将所有.h放在同一个文件中(例如,我们称其为“ Include”)

  2. 将此添加到您的Makefile中:gcc * .c -I / path / Include -iInclude

附言:您编译.c文件的方式有点奇怪。 通常我们使用这个:

SRC = 1.c
      2.c
      n.c

OBJ = $(SRC:.c=.o)

all:  $(OBJ)
      gcc $(SRC) -I/path/Include -iInclude    (where path is the location of your file called "Include")

只要使用C,我就从来没有编写过包含头文件(.h)的make文件,头文件在这里是为了公开一些数据结构和方法,以及其他C模块所需的常量。 您不需要为头文件创建规则,只需要做的就是构建.o对象,那么当您创建可执行文件时,喜欢者将为您做魔术。 如果您需要有关制作Make文件的帮助,可以在此处解释您要构建的内容,我会给您提示。 干杯。

如果您的头文件不在当前目录中,而您将其包含在Makefile中,Make会开始在默认位置查找头文件,但无法在您的情况下找到它们。

您应该将2.h头文件放在当前目录中以避免此搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM