MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como posso construir um programa usando o driver c++ do mongodb?


Como construir o driver MongoDB C++

Esta solução teve sucesso em uma máquina com as seguintes características:
  1. Windows XP SP3 32 bits
  2. Visual Studio Express 2010 (VC 10)

Usei D:\MongoDBcplusplusClient como diretório de trabalho (instalei lá todos os pré-requisitos).

Processo:
  • Etapa 1

Baixe o driver MongoDB C++:

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

Você pode fazer um clone usando o Git ou baixá-lo como um arquivo .zip (eu fiz o segundo). Você obterá um arquivo como mongo-cxx-driver-legacy.zip. Extraia-o para a pasta mongo-cxx-driver-legacy dentro do seu diretório de trabalho.
  • Etapa 2

Baixe os binários do Windows pré-construídos Boost. ATENÇÃO!!! Você deve usar uma versão específica do Boost. No meu caso, a versão 1.52 funcionou. Você pode baixá-lo aqui:

http://boost.teeks99.com/

Eu baixei o exe auto-extraível boost_1_52_0-vc32-bin.exe. Coloque-o em seu diretório de trabalho e execute-o. Ele criará uma pasta (algo como lib32) que conterá os binários boost (arquivos .lib e .dll)
  • Etapa 3

Baixe o código-fonte do Boost (arquivos .h). É claro que eles devem ser da mesma versão da Etapa 2. Eu os baixei aqui:

http://sourceforge.net/projects/boost/files/boost/1.52.0/

Você receberá um arquivo boost_1_52_0.zip que pode ser extraído na pasta boost_1_52_0.
  • Etapa 4

Baixe o Python. Neste exemplo, baixei a versão 2.7.9 e especificamente o instalador do Windows x86 MSI daqui:

https://www.python.org/downloads/release/python-279/
  • Etapa 5

Baixe Scons aqui:

http://www.scons.org/download.php

Baixei o instalador do Windows (scons-2.3.4-setup.exe) e instalei o Scons no diretório Python (no meu caso C:\Python27).
  • Etapa 6

Baixe msinttypes aqui:

https://code.google.com/p/msinttypes/

(Você deve incluir esses arquivos de cabeçalho no projeto que usa o driver)
  • Etapa 7

Vá para Iniciar->Executar… e na caixa Executar escreva cmd. Na janela do prompt de comando aberta, navegue até a pasta na qual você extraiu o driver mongo na Etapa 1. No meu caso, eu fiz:cd D:\ D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy
  • Etapa 8

Construa o driver usando Scons. No diretório que você navegou na Etapa 7, escreva:

scons

--prefix=D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy

--cpppath=D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0

--libpath=D:\MongoDBcplusplusClient\lib32

--win-version-min=xpsp3 instalar

e pressione Enter.

O --prefixo flag especifica o diretório de destino no qual o arquivo .lib do driver será criado, --cpppath especifica a pasta na qual os arquivos de cabeçalho do Boost estão localizados e o --libpath o caminho para os arquivos Boost .lib. Claro que você deve mudar o caminho para o seu. Um arquivo chamado libmongoclient-s.lib será criado no caminho --prefix/lib .Se você quiser construir o driver com depuração habilitada, você deve usar o seguinte comando:

scons

--prefix=D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy

--cpppath=D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0

--libpath=D:\MongoDBcplusplusClient\lib32

--win-version-min=xpsp3

--dbg=na instalação

Um arquivo chamado libmongoclient-sgd.lib será criado no --prefix/lib caminho.
  • Etapa 9

No Windows Explorer navegue até a pasta na qual o driver MongoDB C++ está instalado, vá para a subpasta lib (no meu caso era D:\MongoDBcplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib) e renomeie o arquivo libmongoclient-s.lib para mongoclient.lib e o libmongoclient-sgd.lib para mongoclient-gd.lib .
  • Etapa 10

Abra o Visual Studio 2010 Express e abra o projeto no qual você deseja usar o driver MongoDB C++. Você deve especificar as dependências. Clique com o botão direito do mouse no nome do projeto no gerenciador de soluções (coluna da esquerda) e clique em Propriedades. Vá para C/C++ → General e em Additional Include Directories adicione:

a) Diretório de arquivos de cabeçalho Boost (no meu caso D:\MongoDBcplusplusClient\boost_1_52_0\boost_1_52_0)

b) Diretório de arquivos de cabeçalho do driver MongoDB C++ (no meu casoD:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driverlegacy\include)

c) Diretório de arquivos de cabeçalho de tipos Cstdint (no meu caso:\MongoDBcplusplusClient\msinttypes-r26 )
  • Etapa 11

Vá para Linker → General e em Additional Library Directories adicione:

a) Diretório de arquivos Boost .lib (no meu caso D:\MongoDBcplusClient\lib32)

b) Diretório de arquivos .lib do driver MongoDB C++ (no meu caso D:\MongoDBcplusplusClient\mongo-cxx-driver-legacy\mongo-cxx-driver-legacy\lib)

Após essas etapas, o projeto que utiliza o driver será compilado com sucesso nas configurações de liberação e depuração.