如何将库添加到make文件

时间:2016-07-26 18:31:40

标签: c makefile

我正在编辑库中已有的示例文件。在示例的目录中,有一个我一直用来编译和运行示例的Makefile。我现在想要为这个make文件添加一个额外的库,我已经尝试将头文件和.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>

我不确定我错过了什么?该程序在添加此库之前正常运行。

1 个答案:

答案 0 :(得分:1)

库通常是首先构建并安装到您的系统中,因此您可以稍后将它们添加到Makefile中的LIBS内(让我们说您的库被称为&#34} ; foo&#34;,-lfoo)。

所以你有两个选择:

  1. &#34;这实际上值得名字库&#34; path:查找或编写Makefile以将foo.c转换为libfoo.so,安装它,然后使用LIBS= -lbsapi -lfoo
  2. 我在源代码中包含源代码,希望一切正确构建&#34;路径:将foo.o添加到Biometry所需的内容中,并添加一个如何从foo.o构建foo.c的方法,并将foo.c添加到您的来源:
  3. 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)