Libbson和MongoDB-C驱动程序编译

时间:2013-12-15 22:21:12

标签: c makefile bson libtool mongodb-c

我想安装MongoDB-C驱动程序的新更新,但似乎编译在逻辑上阻塞,同时包含先前安装在目录“/ usr / local /”中的libbson库(#include <bson.h>)。

如何正确“链接”我的库,以便同时使用#include <bson.h>#include <mongoc.h>

1 个答案:

答案 0 :(得分:2)

libmongoclibbson现在都是基于automake的项目(./configure,make,make install)。他们还安装了pkg-config * .pc文件,这些文件可用于使用pkg-config程序发现库安装和标头路径。如果已安装到/ usr / local,则可能需要设置PKG_CONFIG_PATH = / usr / local / lib / pkg-config(或lib64),具体取决于您的系统是否自动包含该路径。

构建它们的一种简单方法是:

    gcc $(pkg-config --cflags --libs libmongoc-1.0) myfile.c

如果您在Makefile中,则需要先进行shell。使用GNU make时,我通常会这样做:

LIBS := $(shell pkg-config --libs libmongoc-1.0)
CFLAGS := $(shell pkg-config --cflags libmongoc-1.0)
DEBUG := -ggdb
OPTS := -O2
WARNINGS := -Wall -Werror

%.o: %.c %.h
    $(CC) -o $@ -c $(DEBUG) $(WARNINGS) $(OPTS) $(CFLAGS) $*.c

myprog: myprog.o
    $(CC) -o $@ $(DEBUG) $(WARNINGS) $(OPTS) $(LIBS) myprog.o