c - 在 makefile 上添加库

标签 c makefile

我在 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/

相关文章:

c - 如何忽略C中键盘的空行

c - mongoc_init undefined reference

c - Ubuntu gcc 中无法执行 "make"

c - gsoap 生成的 wsdl 无法与 eclipse WebServices explorer 一起使用

c - C 中的结构体与指针和结构体数组

c - 单击代码块中的“构建并运行”后,错误 : CentralTendencies. exe 已停止工作

c - mmap访问文件内容并执行算术运算

c++ - 如何解决 OSX cctools 中的构建错误?

c++ - 与 gdb 一起使用的 Makefile

makefile - 如何使用 makefile 将 .o 和 .exe 文件放在/build/目录中