Libbson和MongoDB-C驱动程序编译

Libbson和MongoDB-C驱动程序编译,c,makefile,bson,libtool,mongodb-c,C,Makefile,Bson,Libtool,Mongodb C,我想安装MongoDB-C驱动程序的新更新,但似乎编译在逻辑上会阻塞,同时包括以前安装在目录“/usr/local/”中的libbson库(#include) 如何正确地“链接”我的库以便同时使用#include和#include?libmongoc和libbson现在都是基于自动生成的项目(./configure,make,make-install)。他们还安装了pkg config*.pc文件,这些文件可用于使用pkg config程序查找库安装和头路径。如果已安装到/usr/local,则

我想安装MongoDB-C驱动程序的新更新,但似乎编译在逻辑上会阻塞,同时包括以前安装在目录“/usr/local/”中的libbson库(
#include


如何正确地“链接”我的库以便同时使用
#include
#include

libmongoc和
libbson
现在都是基于自动生成的项目(./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中,你需要首先抛出。使用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

“问题”是我使用的应用程序本身编译.c文件。因此,我无法使用命令“gcc$(pkg config--cflags--libs libmongoc-1.0)myfile.c”。您可以使用编译器选项手动指定路径。在
gcc
上,这类似于
gcc-L/usr/local/lib-I/usr/local/include/libbson-1.0-I/usr/local/include/libmongoc-1.0-lbson-1.0-lmongoc-1.0 my_program.c