1

マシンに MongoDB C++ ドライバーをインストールしようとしています。こちらの指示に従いましたが、すべてが正常にインストールされたようです。それでも、ヘッダーを含めることができないようです。簡単なテスト プログラムを次に示します。

#include <cstdlib>
#include <iostream>
#include "mongo/client/dbclient.h"

void run() {
  mongo::DBClientConnection c;
  c.connect("localhost");
}

int main() {
  try {
    run();
    std::cout << "connected ok" << std::endl;
  } catch(const mongo::DBException &e) {
    std::cout << "caught" << e.what() << std::endl;
  }

  return EXIT_SUCCESS;
}

ここに私が得るエラーがあります:

g++ app/tutorial.cpp -pthread -lmongoclient -lboost_thread-mt -lboost_filesystem -lboost_program_options -lboost_system -o tutorial
app/tutorial.cpp:3:35: error: mongo/client/dbclient.h: No such file or directory
app/tutorial.cpp: In function ‘void run()’:
app/tutorial.cpp:6: error: ‘mongo’ has not been declared
app/tutorial.cpp:6: error: expected `;' before ‘c’
app/tutorial.cpp:7: error: ‘c’ was not declared in this scope
app/tutorial.cpp: In function ‘int main()’:
app/tutorial.cpp:14: error: ISO C++ forbids declaration of ‘mongo’ with no type
app/tutorial.cpp:14: error: expected `)' before ‘::’ token
app/tutorial.cpp:14: error: expected `{' before ‘::’ token
app/tutorial.cpp:14: error: ‘::DBException’ has not been declared
app/tutorial.cpp:14: error: ‘e’ was not declared in this scope
app/tutorial.cpp:14: error: expected `;' before ‘)’ token

どんな助けでも大歓迎です。

4

1 に答える 1

4

この行app/tutorial.cpp:3:35: error: mongo/client/dbclient.h: No such file or directoryは、g++ がインストールされているヘッダーを見つけるのに苦労していることを示しています。リンクしたチュートリアルでは、推奨されるコンパイル コマンドの下のボックスに次のように表示されます。

-I と -L を使用して、mongo と boost のヘッダーとライブラリの場所を指定する必要がある場合があります。

/usr/local/includeインストール手順によって、ヘッダー ファイルが に配置され、ライブラリ (例: libmongoclient.a) が に配置されたと仮定します/usr/local/lib。次に、コンパイルコマンドを読み取りに適応させてみてください

g++ -I/usr/local/include -L/usr/local/lib -pthread -lmongoclient -lboost_thread-mt -lboost_filesystem -lboost_program_options -lboost_system app/tutorial.cpp -o tutorial
于 2013-07-20T01:31:32.833 に答える