1

我有一个 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 个文件。但是如果我有大量文件,最好的解决方案是什么?

4

3 回答 3

2

您可以通过这种方式链接 Makefile 中的所有 .h 文件:

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

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

Ps:你编译.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")
于 2013-06-20T14:53:34.873 回答
0

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

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

于 2013-06-20T13:25:27.557 回答
0

只要我在使用 C,我就从来没有编写包含头文件 (.h) 的 make 文件,这些头文件在这里公开一些数据结构和方法,以及其他 C 模块中需要的常量。您不需要为头文件创建规则,您所要做的就是构建 .o 对象,然后当您创建可执行文件时,liker 将为您施展魔法。如果你需要一些帮助来创建一个 make 文件,你可以在这里解释你想要构建什么,我会给你一个提示。干杯。

于 2013-06-20T13:21:53.537 回答