1

「scons」コマンドを使用して Cygwin で MongoDB C++ ドライバーをコンパイルしようとすると、次のエラーが発生します。

src/mongo/db/nonce.cpp:48:20: error: ‘srandomdev’ was not declared in this scope

それは何のライブラリですか?

ありがとう。

4

1 に答える 1

2

srandomdev 関数は、Cygwin や Linux などの GNU システムではなく、BSD または OSX システムのstdlib.hで使用できます。

Cygwin で実行していることをビルド スクリプトが認識していないようです。いくつかのオプションを試すことができます。最も簡単なものは

ifdef 句の変更

これをテストする Windows マシンがなければ、これが機能することを確認するのは困難です。src/mongo/platform/random.cppで、108 行目を編集します。

#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)

することが

#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__) || defined(__CYGWIN__)

最後のelse句を削除

次のようなsrc/mongo/platform/random.cppの行 (私のバージョンでは 141) を見つけます。

#else
class SRandSecureRandom : public SecureRandom {
public:

句までの行を削除してから#endif編集します

#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)

単純に

#else
于 2013-02-19T16:03:13.737 に答える