サーバー側でMongoDBをインストールした後、以下のリンクから、C++ドライバーコードを使用してCentOS5.6OS上にあるクライアントを構成しようとしました。
http://dl.mongodb.org/dl/cxx-driver/
インストールはうまくいきました!チュートリアルは問題なく実行できましたが、この時点で、グループのビルドプロセスでこれをビルドする必要があります。コンパイルしようとすると、次のエラーが発生します。
/usr/local/include/mongo/base/error_codes.h:36: error: expected identifier before numeric constant
/usr/local/include/mongo/base/error_codes.h:36: error: expected '}' before numeric constant
....
この時点で、このコードと衝突している別の#defineが存在する必要があると自分に言い聞かせました。そこで、g++ ... -E
コマンドを実行したところ、に。/usr/include/X11/X.h
があることがわかりました#define BadValue
。
error_codes.h
コードが名前空間に囲まれている名前空間に囲まれている場合、これが発生するとは思わないので、これは私には奇妙に思えmongo
ます。using namespace mongo
そこで、ファイルシステム全体を検索して、グローバル名前空間が汚染されていると思うようなものを探しましたが、そうではありません。これが発生している例は見当たりません。どちらもサードパーティであるため、どのように解決するのか疑問に思っています。
考え?