mongodbとc++の配合使用

3181 ワード

最近では、mongodbをサーバー持久化案として使ってみましたが、サーバーのプログラムはc+を使って書いたので、かなり時間がかかりました。記録してください。
1、bookをダウンロードする1.6.0
http://www.boost.org/users/history/version_1_56_0.
 
2、ダウンロード monogo-cxx-driver-legacy-1.0.2
https://github.com/mongodb/mongo-cxx-driver/releases/tag/legacy-1.0.2
 
3、他にもいくつかの制限条件があります。例えば、gcc 4.8.2、scons、python 2.7.9をインストールします。
 
4、まずg ccをアップグレードし、/usr/binディレクトリの下でcc/c+/gcc/g+のソフトリンクを作成し、libstdc+++と.so.6ファイルを/usr/lib 64ディレクトリにコピーすることに注意します。bootstをインストールし、デフォルトでインストールされているダイナミックライブラリを/usr/local/lib/ディレクトリの下にコピーします。
 
5、ストレス解消 monogo-cxx-driver-legacy-1.0.2エントリしてコンパイルする:
scons all -j8
コンパイル後に生成されたヘッダファイルと静的在庫は build/install/ディレクトリの下で、これらはすべてmongodbのc+ドライバが最終的に必要です。
 
6、テストコードtest.cppを作成する:
#include <iostream>

#include "mongo/client/dbclient.h"



int main() {

    try

    {

        mongo::DBClientConnection conn;

        conn.connect("127.0.0.1");

        std::cout<<"connected ok"<<std::endl;

    } catch(mongo::DBException &e)

    {

        std::cout <<e.what()<<std::endl;

    }

}
このテストコードをコンパイルするコマンドは以下のとおりです。
g++ test.cpp -I include/ -L lib/ -lmongoclient -lboost_system -lboost_regex -lboost_thread
ここでは、簡単な詳細は省略されています。例えば、includeディレクトリには、mono goとbootsのヘッダファイルが格納されています。libディレクトリには、後に指定された4つのリンクライブラリが格納されています。
より多くの利用方法は、公式資料を参照してください。https://github.com/mongodb/mongo-cxx-driver/wiki/Tutorial
詳細なAPIは、参照してください。http://api.mongodb.org/cxx/legacy-1.0.0/namespacemongo.html
  
 
7、どんな問題がありましたか?
GCC\BOOSTのバージョンが高すぎたり、低すぎたりすると、問題があります。この問題は検査が難しいです。もし自分のマシンに異なるバージョンのGCC/BOOSTが存在するなら、アップグレード時には必ず順番に注意してください。PYTHONをアップグレードして、SCONSをインストールして、GCCをアップグレードして環境を配置して、新しいGCCでBOOSTをコンパイルします。新しいBOOSTを使ってシステムの中に元々存在していたBOOSTを完全に置換します。(そうでないとコンパイルしたかもしれませんが、運転中にエラーが発生します。または、book sthreadをリンクした時にエラーが発生しました。boot stread-mtのみリンクできますが、後者はBOOSTを使って書かれたサービスの下のコンパイルに影響します。)
 
8、もっと深い問題があります。
mongodbのc+ドライバは4つのバージョンがあります。一つは今使っているものです。 legacyバージョン;二は26 computバージョンです。三はc++11を使って書き換えた新しいバージョンです。第四に、mongodbオープンソースプログラムは、c+ドライバを持参しています。前の3つの種類の中の一つです。
理論的にはc+11の新しいバージョンを使うべきです。これでGCC/BOOSTを最高バージョンにアップできるかもしれません。これは未来のトレンドです。でも、時間があってこそ、振り回されます。とりあえずこのように使ってください。
すべてのmono-cxx-driverは下記の住所でダウンロードできます。
https://github.com/mongodb/mongo-cxx-driver
 
9、パッケージ
包装して使いやすいようにします。補充してください。