我正在编辑库中已有的示例文件。在示例的目录中,有一个我用来编译和运行示例的 Makefile。我现在想向此 make 文件添加一个附加库,我尝试将 header 和 .c 文件复制并粘贴到 Makefile 中指定的库文件夹中,但没有找到它。这是 Makefile 代码:
CPPFLAGS = -I../../include
CFLAGS =
LDFLAGS = -L../../lib -L../../lib64
LIBS = -lbsapi
Biometry: main.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) main.c -o Biometry $(LIBS)
我想要添加的库带有一个 .h 文件和一个 .c 文件。我已将它们添加到 ../../include 目录中,并确保将其添加到我的代码中,位于前一个 #include
的正下方#include <tpl.h>
我不确定我错过了什么?在添加该库之前程序运行正常。
最佳答案
库通常首先构建并安装到您的系统中,因此您可以稍后将它们添加到 Makefile 中的 LIBS
中(假设您的库名为“foo”,- lfoo
)。
所以你有两个选择:
- “这实际上名副其实的库”路径:查找或编写一个 Makefile 将 foo.c 转换为 libfoo.so,安装它,然后使用
LIBS= -lbsapi -lfoo
,或 - “我将源代码包含在我的源代码中,并希望一切都能正确构建”路径:将 foo.o 添加到
Biometry
需要的内容中,并添加有关如何进行操作的配方从foo.c
构建foo.o
,并将foo.c
添加到您的源中:
CPPFLAGS = -I../../include CFLAGS = LDFLAGS = -L../../lib -L../../lib64 LIBS = -lbsapi Biometry: main.c foo.o $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) main.c foo.o -o Biometry $(LIBS) foo.o: foo.c $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) foo.c -o foo.o $(LIBS)
关于c - 如何将库添加到 make 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38597420/