3

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

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

4

1 回答 1

2

两者libmongoc现在libbson都是基于 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 中,则需要先脱壳。使用 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
于 2014-01-23T19:08:55.240 回答