CentOS 7에서 monbo-cxx-driver r3.0.2 빌드 하기

사전 준비

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" }