在Cygwin上编译MongoDB C ++驱动程序

时间:2013-01-06 19:21:26

标签: c++ mongodb cygwin nosql

我尝试使用'scons'命令在Cygwin上编译MongoDB C ++驱动程序,我得到以下错误:

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

这是什么文件?

感谢。

1 个答案:

答案 0 :(得分:2)

srandomdev函数在BSD或OSX系统上的 stdlib.h 中可用,而不是在像Cygwin或Linux这样的GNU系统上。

看起来构建脚本无法识别您在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