사전 준비
libbson과 mongo-c-driver를 먼저 컴파일 시켜야 한다.
각 각의 프로젝트를 git로 다운받아 빌드
$ git clone git://github.com/mongodb/libbson.git
$ cd libbson/
$ git checkout 1.4.0
$ ./autogen.sh
$ make & make install
$ git clone https://github.com/mongodb/mongo-c-driver.git
$ cd mongo-c-driver
$ git checkout 1.4.0
$ ./autogen.sh --with-libbson=bundled
$ make & make install
빌드가 완료되면, /usr/local폴더 밑에 lib, include, lib/pkgconfig 폴더가 생성되고, 각 각 폴더에는 .so, .h, .pc 파일이 생성된다.
lib path와 pkg-config path를 환경변수에 등록
$ vi /etc/profile
...
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
...
환경변수 저장 후, 터미널 세션 종료 하고 다시 연결해야 적용된다.
pkg-config에 등록되어 있는지 확인
$ pkg-config --list-all | grep lib
...
libmongoc-1.0 libmongoc - The libmongoc MongoDB client library.
libbson-1.0 libbson - The libbson BSON serialization library.
...
본론
mongo-cxx-driver 컴파일
$ git clone -b master https://github.com/mongodb/mongo-cxx-driver
$ cd mongo-cxx-driver
$ git checkout r3.0.2
$ cd build
# 인스톨할 폴더를 /usr/local로 지정
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make && make install
샘플 코드
샘플 실행하기
$ c++ --std=c++11 hellomongo.cpp -o hellomongo $(pkg-config --cflags --libs libmongocxx libbsoncxx)
$ ./hellomongo
Hello, World!
{ "_id" : { "$oid" : "57e0c2f007a00676f33eee81" }, "hello" : "world" }