티스토리 툴바


개발/mongodb2011/06/22 16:02
이 포스트는

윈도우7 64bit
mongodb x86_64 1.8.2
mongodb-mongo-r1.8.2-rc3 c++ 드라이버
visual studio 2008

을 기준으로 작성되어 있습니다.


그냥 다운받아서 참조하면 끝나는 c# 용 드라이버와는 달리
c++ 용 드라이버는 별도의 과정을 거쳐주어야 한다.

문제는 mongodb 홈페이지에 설명과 링크가 뭔가 좀 이상하다 -_-
 
일단 2011년 6월 22일 현재 mongodb 홈페이지에서 c++ 드라이버를
다운받기 위해 클릭하게 되는 링크는 대부분 여기다. 
http://www.mongodb.org/pages/viewpage.action?pageId=21269361

다운받을려고 하면 파일명에 linux 가 들어가있다... 난 윈도우인디?
그래도 설명에 보면 파일명에 linux 가 들어가있지만 모든 OS에서 컴파일 됩니다 라고 써있다.
그러니 안심하고 이거 다운받고 홈페이지에 써있는 방법으로 컴파일 시키면 안된다.[...]

다운받아야 할 주소는 아래와 같다.
https://github.com/mongodb/mongo

위 링크에서 Download 버튼을 클릭한 후 r1.8.2-rc3 를 다운받는다.(1.9는 아직 정식버전이 아니다.)


이걸로 기본적인 다운로드 과정[...]은 끝났다.  
mongodb c++ 드라이버는 비주얼 스튜디오에 포함시켜서 컴파일시키는 것이 아니라 scons 라는 것을
이용하여 컴파일 시켜야 한다. 컴파일 시키기위한 준비물은 아래와 같다.

 - Python 2.5  (나는 2.7을 사용했다. 단 최신 버전이라고 할 수 있는 3 버전대에서는 안된다[...])
 - scons  ( 이것을 사용하기 위해 파이썬이 필요 ) 
 - boost 1.4.2  ( 다른 버전은 안됨 )
  
참고로 나는 윈도우7 64bit 버전에서 컴파일 하였다.

파이썬 설치하고 scons도 설치한다.  scons는 왠만하면 인스톨 버전으로 다운받아서
설치하자. 알아서 파이썬 폴더에 맞춰서 설치된다.
파이썬과 scons 를 설치하였으면 컴파일의 편의를 위하여 환경변수의 경로설정에
C:\Python27 과 C:\Python27\Scripts 폴더를 추가해준다.
 
그리고 boost 1.4.2 가 설치되어 있으면 상관없으나 1.4.2 이상 버전이 설치되어 있으면
이게 또 컴파일하다가 에러를 내뱉는다.[...] 나는 1.4.4 였다.
참고로 1.4.5 이상부터는 아예 공식적으로 지원하지 않는다. 그리고 어차피 클라이언트 컴파일해도
1.4.2 가 필요해진다[...].
맘편하게 1.4.2를 설치하는게 좋다만 그냥 설치하면 또 안된다.
이 글을 보고 괜시리 1.4.2 바이너리 인스톨본 다운받아서 설치하지 말도록.
이 부분은 다음 포스팅에서 다룬다. 가장 좋은 방법은 다음 포스트를 읽고 1.4.2 를 64bit로 컴파일 한 후
mongoclient 를 컴파일하는 것이다.

 mongodb 홈페이지에서 boost 1.4.2 prebuilt 버전을 제공해준다. 아래링크에서 다운받자.
http://www.mongodb.org/pages/viewpageattachments.action?pageId=12157032 
사용하는 VS 의 버전에 맞춰서 받으면 된다. 2008, 2010 을 제공해주고 있는데 2005 에서는 될지 안될지 모르겠다.
나는 2008 사용자.


이제 컴파일시키면 된다. 다운받은 드라이버를 적당한 곳에 압축을 푼다.
나는 D:\mongoclient 라는 폴더에 풀었다.

부스트 1.4.2 가 설치되어 있는 사람이라면 이 상태에서 커맨트 창에

scons mongoclient 

라고 입력하면 짠 하고 컴파일이 될 것이다. 안되면 나도 모르겠다.[...]

부스트가 다른 버전이 설치되어 있는 사람이면
prebuilt 버전을 다운받았을 것이다. 드라이버 폴더가 있는 곳에 적당히 복사해준다.

 

나는 적당히 boost 라는 폴더를 만들어 넣었다.


참고로 나는 파이썬을 할 줄 모르기 때문에 boost 폴더 안의 구성은 디폴트로 깔려있는 부스트의 폴더구성과
일치하게 하였다.

이렇게


이젠 SConstruct 파일의 내용을 수정해주어야 한다. 텍스트 편집기로 연 후에
find_boost() 함수를 찾는다. 찾았으면 아래와 같은 내용이 있을 것이다.



참고로 홈페이지에 c++ 드라이버라고 떡 하니 되어있는 것을 받으면 Sconstruct 파일에 저 내용 자체가 아예 없다.
그 이전에 scons mongoclient 때려도 컴파일 시도도 안된다.

여튼 위의 내용에서 boostDir 값을 적절하게 수정해준다.

 
파이썬 아는 사람은 그럴듯하게 고쳐서 써보자.  

다 했으면 커맨드창에서 해당 폴더로 이동후 scons mongoclient 라고 입력해주면
컴파일이 된다. 안되면 나도 모른다.[...]
컴파일 된 라이브러리의 용량은 190메가 정도. 위엄 쩌네여
 

참고 URL : http://blog.naver.com/PostView.nhn?blogId=triple3&logNo=130110670090

'개발 > mongodb' 카테고리의 다른 글

mongodb C++ 프로젝트에서 사용하기  (0) 2011/06/23
mongodb C++ 드라이버  (0) 2011/06/22
mongodb C# 드라이버  (0) 2011/06/22
Posted by 아주아슬
TAG