vs 2010はmongodbサーバー、X 64ビットを接続します.



 このものは本当に多くの時間と精力を費やしました.中には多くの間違いがありました.英語のmongodbとbootsをよく見て、何度も取り出しました.
http://docs.mongodb.org/manual/reference/connection-string/
http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.
 
一、scons、python、Spider Monkey、bookとmongodbの関係
参考にするhttp://blog.csdn.net/mniwc/article/details/8590528 1.scons sconsはPythonが書いた自動化構築ツールで、linuxのmakeツールの機能と似ています.関連するSConstructファイル、つまりmakeツールに似たmakefileファイルは、コンパイルとリンクの内容と方法を記述しています.ここではsconsというツールを使って、mongoclient.libを生成するものをコンパイルします.2.python Pythonは対象に向けて、直訳式コンピュータプログラム設計言語である.sconsはpythonで書かれているので、必ずそのライブラリを使います.だから、sconsの前にpythonをインストールします.3.Spider MonkeyはC言語で実現されるJavaScriptスクリプトエンジンです.mongodbのデータタイプはbsonです.bsonはjsonのバイナリ形式の保存フォーマットです.jvaScriptのデータタイプです.mongodbはjavascriptスクリプト言語の操作をサポートしていますので、JavaScriptスクリプトエンジン、すなわちこのSpider Monkeyが必要です.4.book 強力なC++ライブラリで、mongodbはC++で書いています.このライブラリに使っていますので、それが必要です.
二、モンゴルクライン.libを生成する.
windowsの下でコード化されたmongodbクライアントは、先にコンパイルして1つのmongoclient.libを生成する必要があります.すなわち、mongodbサーバに接続するために必要なC++インターフェースライブラリです.
1、ダウンロードしてpythonをインストールして、バージョンは必ず>=>2.4しかも<3.0(sconsはpythonのこれらのバージョンでしか使えないからです).
これは言うまでもなく、インストール経路はC:\Pythoon 27
2、インストールsconsをダウンロードします.(pythonが必要ですので、pythonを先にインストールします.)C:\Python 27\ScripptsをPATHに追加します.
http://sourceforge.net/projects/scons/files/scons/2.2.0/
sconsをダウンロードして、sconsはsconsを解圧して、scons-2.2..0までそれをコピーして、パスは例えば:E:\mongodb-innstall\scons-2.2..0
cmd下cd E:\mongodb-innstall\scons-2.2.
python setup.py installはsconsのインストールを行います.
sconsのインストール時に問題が発生しました.
LookupErrer:unknown encoding:cp 65001:
これはpythonの符号化問題で、pythonにはcp 65001の符号化が定義されていません.識別されていません.
問題が発生したファイルに追加します.
import codecs
codecs.register(lambda name: name == 'cp65001' and codecs.lookup('utf-8') or None)
これにより、cp 65001符号をutf-8符号にマッピングすることができる.
3、bookをダウンロードします.
bookをダウンロードします1_49_0バージョンです
そのストレスを解消して、フォルダをブックと名前を変えて、C:\bookの下に置く.
(mongoclient.libをコンパイルするデフォルトの検索パスはC:\bootstだと言われていますが、実際の操作は全く見つからないので、自分で追加します.)
Visual Studio Commundを開いて、以下の図のvisual studioコマンドの提示(2010):
cd C:\book;
bootstrapを入力してBoost構築ツールの生成を待つ.
コマンドラインにbjam toolset=msvc-10.0 variant=debugを入力して、release threading=multi link=staticです.そしてインストールが完了するまで待つ.64ビットライブラリを生成する場合は、コマンドbjam toolset=msvc-1000 variant=debugを入力し、release threading=multilk=static runtime-link=static address-model=64
赤い字に注意しますが、このように入力しないとsharedモードが生成されます.
LINK:fatal error LNK 1104:ファイルを開けませんでした.
 
インストールが完了すると、画面に「The Boost C++Libries were success fully built!」というメッセージが表示されます.ヘッダファイルとライブラリファイルディレクトリを作成します.
最初のファイルはincludeにします.C:\bootst
作成したライブラリファイルはC:\bootst\stage\libの下にあります.
 
4、mongodbのC++driverをダウンロードするhttp://dl.mongodb.org/dl/cxx-driver/
mongodb-linux-x 86_64-v 2.4-latest.tarをダウンロードして、ずっとmongo-cxx-driver-v 2.4まで解凍して、配置経路は:E:\mongodb-innstall\monto-cx-driver-v 2.4です.
 
5、Spider Monkeyをダウンロードします.  このリンクはプログラミングされたvs 2010用です.https://github.com/dwight/vc2010_jsを選択します
ダウンロードしたファイルをmongodbと同じクラスのディレクトリjsに保存します.
 
6、モンゴdbをダウンロードする
 ダウンロードしたmongodbをC:\mongoファイルの下に置いてください.ソースコードは不要です.下のwindow 64桁で大丈夫です.今後の操作はmongodbの下でlibとincludeを生産します.
monogodb C++driverをダウンロードして、その層をmono-cxx-driver-v 2.2に解凍して、それをカタログにコピーします.
E:\mongodb-innstall\mongo-cxx-driver-v 2.2の下、ディレクトリは以下の通りです.
vs2010连接mongodb服务器,X64位_第1张图片
部分を省略する
cdはこのディレクトリの下でscons mongoclient.libを実行してmongoclient.libを生成するつもりです.
エラーが発生しました
ブートパスの設定が間違っていることを説明します.
 boottパスを設定して、E:\mongodb-innstall\monto-cxx-driver-v 2.2\SConstructファイルを開くと、見えます.
AddOption("--extrapath",
          dest="extrapath",
          type="string",
          nargs=1,
          action="store",
          help="comma separated list of add'l paths  (--extrapath /opt/foo/,/foo) static linking")

AddOption("--prefix",
          dest="prefix",
          type="string",
          nargs=1,
          action="store",
          default="/usr/local",
          help="installation root")
追加するものを選択できます.prefixはmongodbの経路です.
プログラムを実行できる時はcmdに追加します.
E:\mongodb-install\mongo-cxx-driver-v2.2>scons --prefix c:\mongodb --extrapath C
:\boost,C:\boost\stage
SConstructファイルにも追加できます.
env.Append(CPPPATH=["C:/boost"], LIBPATH=["C:/boost/stage/lib"])
エラーが発生する可能性があります

ヒントtext.h(89):29858;errortemperror
これは、sconsがUnicodeの文字セットを使用するパラメータを持っていないため、デフォルトでは多バイトの文字セットを使用しています.
私達は\mono-cxx-driver-v 2.2\src\mono\utilの下のtext.hファイルを開けます.
/* like toWideString but UNICODE macro sensitive */
# if !defined(_UNICODE)
#error temp error 
    inline std::string toNativeString(const char *s) { return s; }
# else
    inline std::wstring toNativeString(const char *s) { return toWideString(s); }
# endif
龛error temperrorにダブルスロープを付けてコメントします.
入力後にエラーが発生しました.
 
 

这些无法解析的外部符号包含在WS2_32.lib,Dbghelp.lib中,在SConstruct文件中加入

env.Append(LIBS=['WS2_32','Dbghelp'])
 
これらのエラーはなくなりましたが、変な問題が発生しました.
 
 

本来是要生成mongoclient.lib的,却说没有找到mongoclient.lib中止生成。

后来想起来之前有人说把E:\mongodb-install\mongo-cxx-driver-v2.2\src文件夹下的SConscript.client

中的一处

mongoclient_install = env.Install('#/', [
        mongoclient_lib,
        #env.SharedLibrary('mongoclient', clientSource),
        ])
中のenv.ShardLibrary('mongoclient',clientSource)の前の「菗」は抜きました.
これを入れたばかりです.今コンパイルしてモンゴルクライン.libを作りました.