2013-12-15 11 views
3

MongoDB-C 드라이버의 새로운 업데이트를 설치하고 싶습니다. 이전에 libbson 라이브러리 (#include <bson.h>)를 설치하는 동안 컴파일이 논리적으로 차단 된 것처럼 보입니다. "/ usr/local/". Libbson 및 MongoDB-C 드라이버 컴파일

는 방법 "링크"내 라이브러리가 올바르게 위해 #include <bson.h>#include <mongoc.h>을 모두 사용하는?

답변

2

libmongoclibbson은 모두 automake 기반 프로젝트입니다 (./configure, make, make install). 그들은 또한 pkg-config 프로그램을 사용하여 라이브러리 설치 및 헤더 경로를 탐색하는 데 사용할 수있는 pkg-config * .pc 파일을 설치합니다. 당신은/usr/지방에 설치 한 경우, 수도 PKG_CONFIG_PATH =/usr/지방/lib 디렉토리/PKG-설정을 설정 (또는 lib64에) 시스템이 자동으로 경로를 포함 여부에 따라해야합니다.

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

당신이 메이크에있는 경우, 먼저 밖으로 껍질해야합니다 :

그들에 대하여 구축하는 간단한 방법은하는 것입니다. 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 [email protected] -c $(DEBUG) $(WARNINGS) $(OPTS) $(CFLAGS) $*.c 

myprog: myprog.o 
    $(CC) -o [email protected] $(DEBUG) $(WARNINGS) $(OPTS) $(LIBS) myprog.o 
+0

"문제"는 내 .c 파일을 컴파일하는 응용 프로그램을 사용한다는 것입니다. 따라서 "gcc $ (pkg-config --cflags --libs libmongoc-1.0) myfile.c"명령을 사용할 수 없습니다. –

+0

컴파일러 옵션을 사용하여 수동으로 경로를 지정할 수 있습니다. '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' – user2562047