我在 link 上执行“使用“真实”交叉编译器”描述的指南。在指南的底部有一个标准的 makefile。我用 C 编写了一个简单的程序,并使用命令使其运行。现在我想用库“ev3c.h”编写一个程序。如何在 makefile 中添加这个库?
最佳答案
如果您使用的是 gcc 或 clang,请在您的配方中将 -I/home/daniele/ev3c/include
传递给它。
这将允许您使用 #include "someheader"
从该路径 #include
。
就包含文件的 Make 处理而言,它们通常是隐式依赖项 - 也就是说,您通常不想在依赖项中显式提及它们,因为诸如 clang
之类的编译器或 gcc 可以检测它们并将它们添加到适合您的 Makefile 规则中。
-MMD -MF somefile
允许您使用 gcc 或 clang 进行这种 #include 依赖项检测:
例如:
%.o: %.c
$(COMPILE.c) -I /home/daniele/ev3c/include $(OUTPUT_OPTION) $< -MMD -MF $(patsubst %.o,%.o.d,$@)
-include $(wildcard *.o.d)
这将使编译器检测每个已编译的 c 文件的包含依赖项,并且 -include
行会将这些依赖项添加到您的 Makefile 中,以便如果您的 C 文件包含 "foo.h"
和 foo.h 发生更改,即使您没有将 foo.h
作为显式依赖项提及,make
也会触发重新编译。
关于c - 在 makefile 上添加库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921003/