2011-12-10 2 views
1

MacBook Proにmongodbをインストールして実行しました。 C++ドライバですが、 学校(長いシミュレーションを行う必要があります)でエラーが発生しました。 データベース自体はうまく動作しますが、私は私のプログラムをコンパイルしようとすると、私はこれらのエラーの多くを得る :私は、ダウンロードした建設され、ブーストバージョン1.4.8、1.4.7および 1.44を試してみましたMongodb C++ドライバ - リンクエラー:推奨されないboost :: stystem :: get_generic_category()を使用しています

/chalmers/users/X/thesis/libs/mongo-cxx-driver-nightly// 
libmongoclient.a(spin_lock.o): In function 
`__static_initialization_and_destruction_0(int, int)': 
spin_lock.cpp:(.text+0x44): undefined reference to 
`boost::system::get_system_category()' spin_lock.cpp:(.text+0x50): 
undefined reference to `boost::system::get_generic_category()'... 

.0。 Get_system_category()と get_generic_category()はどちらも推奨されなくなり、同じgetchsを取得したメソッド名に置き換えられました。しかし、私のMacBookで私はブースト 1.4.7を使用し、それは動作します.. 私は夜間と最新の2.0バージョンのC++ドライバを試しました。 I でも同じエラーが発生します。学校のコンピュータはRedHat Enterprice Linux Serverです。/usr/libフォルダにlibboost_systemはありません。私は をダウンロードしたルートアクセス権を持っていると(ブースト、libcurlの)必要なライブラリと私は メイクファイルでのものを指しています組み込まれていないので:

path = ./build/ 

Ipath = -I/../mongo-cxx-driver-v2.0/mongo/ - I/.../boost_1_44_0/ 

Lpath = -L/.../mongo-cxx-driver-nightly/ -L/.../boost_1_44_0/stage/lib -L/.../curl/lib 

libs = -lboost_system -lmongoclient -lboost_thread -lboost_filesystem -lboost_program_options -lcurl 

db: sdc.o main.cpp 
     g++ main.cpp $(path)sdc.o $(Ipath) $(Lpath) $(libs) -o $ (path)db 

sdc.o: ../controller.h ../controller.cpp 
     g++ -c ../controller.cpp -o ./build/sdc.o $(Ipath) 

を他の誰がこの問題を抱えていますか?誰も私がやっていることを見ています ここに間違いはありますか?私の推測では、あなたがブーストのローカルにインストールされたバージョンに対してではなく、ブーストのバージョンに対してのmongo DBライブラリ `libmongo.a`を構築しているということです。これは、ブーストバージョン1.42で働い

おかげ

+0

あなたがダウンロードしたものです。 – evnu

+1

@evnu:はい、私はあなたが正しい道にいると思います。私はlibmongoclient.aのプリコンパイルされたバージョンを使用しました。おそらくそれはいくつかの他のバージョンのブーストを使ってコンパイルされています。私は1.35で試してみて、初めてコンパイルしました。しかし、私は奇妙なエラーが発生しました: 'boost :: thread_interrupted'のインスタンスをスローした後に終了します。私はそれを見つけ、他の誰かが同じ問題を抱えていた:https://groups.google.com/group/mongodb-user/browse_thread/thread/5ecb157325332c3a。ある答えでは、Chris Westinは、ドライバ(v1.8のmongoclientドライバ)がboost 1.42で構築されたことを暗示しています。今それを試して.. – salomons

+0

1.42働いた!無駄な2日間の話。 – salomons

答えて

関連する問題