엣찌히어로 MYPI

엣찌히어로
접속 : 7048   Lv. 76

Category

Profile

Counter

  • 오늘 : 13 명
  • 전체 : 4288 명
  • Mypi Ver. 0.3.1 β
[기본] MongoDB 윈도우 C++ 드라이버 설치하기 (0) 2015/10/13 PM 04:30

MongoDB C++ 드라이버 설치하기

 

1.   참고 문서

https://github.com/mongodb/mongo-cxx-driver/wiki/Download-and-Compile-the-Legacy-Driver

 

 

2.   Boost 설치하기

n  아래 경로에서 설치본을 다운 받고 설치한다. 여기서는 D:\boost\boost_1_59_0에 설치 했다고 가정한다.

http://sourceforge.net/projects/boost/files/boost-binaries/

 

 

3.   파이썬 설치하기

n  아래 경로에서 2.X대 버전을 다운 받고 설치한다. 여기서는 D:\Python27에 설치 했다고 가정한다.

https://www.python.org/

 

 

4.   Scons 설치하기

n  아래 경로에서 다운 받고 설치한다. 자동으로 파이썬 설치 경로를 인식해서 D:\Python27\s!crips 경로에 설치된다.

http://www.scons.org/

 

 

5.   환경 변수 path에 파이썬 경로 추가하기

D:\Python27;D:\Python27\s!crips

 

 

6.   레거시 C++ 드라이버 다운받기

n  아래 경로에서 안정화된 최신버전을 다운 받고 압축을 푼다. 여기서는 D:\mongo-cxx-driver-legacy에 압축을 풀었다고 가정한다.

https://github.com/mongodb/mongo-cxx-driver/releases

 

 

7.   빌드하기

n  관리자 권한으로 명령 프롬프트를 실행하고 D:\mongo-cxx-driver-legacy 경로로 이동한다.

n  기본 옵션인 static 라이브러리 MT 옵션으로 빌드한다.

n  [--64] : 64비트로 빌드한다.

n  [--prefix=D:\mongodb\client] : 결과물 출력경로를 지정한다.

n  [--cpppath=D:\boost\boost_1_59_0] : Boost 소스 경로를 지정한다.

n  [--libpath= D:\boost\boost_1_59_0\lib64-msvc-14.0] : Boost 라이브러리 경로를 지정한다.

n  아래 명령을 입력해서 릴리즈 빌드한다.

Scons

--64

--prefix=D:\mongodb\client

--cpppath=D:\boost\boost_1_59_0

--libpath= D:\boost\boost_1_59_0\lib64-msvc-14.0

install

 

n  아래 명령을 입력해서 디버그 빌드한다.

Scons

--64

--prefix=D:\mongodb\client

--cpppath=D:\boost\boost_1_59_0

--libpath= D:\boost\boost_1_59_0\lib64-msvc-14.0

Install

--dbg=on

 

n  빌드가 성공했으면 아래 내역이 생성된다.

D:\mongodb\client\include

D:\mongodb\client\lib\libmongoclient-s.lib

D:\mongodb\client\lib\libmongoclient-sgd.lib

 

 

8.   Visual Studio 프로젝트 속성 설정하기

n  포함 디렉터리에 D:\mongodb\client\include를 추가한다.

n  라이브러리 디렉터리에 D:\mongodb\client\lib를 추가한다.

 

 

9.   접속 테스트하기

n  아래와 같은 소스를 작성한다. 미리 로컬에 MongoDB가 설치되어 있다고 가정한다.

#include <WinSock2.h>

#define STATIC_LIBMONGOCLIENT

#include "mongo/client/dbclient.h"

 

#pragma comment(lib, "ws2_32.lib")

 

bool Test()

{

    mongo::client::initialize();

 

    try

    {

        mongo::DBClientConnection conn;

        conn.connect("localhost");

    }

    catch (...)

    {

        return false;

    }

 

    return true;

}

 

신고

 
X