我有一个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个文件。但如果我有大量文件,最佳解决方案是什么?
答案 0 :(得分:2)
您可以通过以下方式链接Makefile中的所有.h:
将所有.h放在同一个文件中(例如我们称之为“Include”)
在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")
答案 1 :(得分:0)
只要我使用C,我就永远不会编写包含头文件(.h)的make文件,头文件在这里公开一些数据结构和方法,其他C模块需要的常量。 您不需要为头文件创建规则,您只需构建.o对象,然后当您创建可执行文件时,liker将为您提供魔力。 如果您需要帮助创建一个make文件,您可以在这里解释您想要构建的内容,我会向您发送一个提示。 欢呼声。
答案 2 :(得分:0)
如果您的头文件不在当前目录中并且您将其包含在Makefile中,Make开始在默认位置查找头文件,但在您的情况下无法找到它们。
您应该将2.h
个头文件放在当前目录中以避免此搜索。