我尝试使用'scons'命令在Cygwin上编译MongoDB C ++驱动程序,我得到以下错误:
src/mongo/db/nonce.cpp:48:20: error: ‘srandomdev’ was not declared in this scope
这是什么文件?
感谢。
答案 0 :(得分:2)
srandomdev函数在BSD或OSX系统上的 stdlib.h 中可用,而不是在像Cygwin或Linux这样的GNU系统上。
看起来构建脚本无法识别您在Cygwin上运行的事实。您可以尝试一些选项。最简单的是
如果没有Windows计算机对其进行测试,很难确定这对您有用。 在 src / mongo / platform / random.cpp 中,编辑第108行
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)
是
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__) || defined(__CYGWIN__)
找到 src / mongo / platform / random.cpp 的行(在我的版本中为141),看起来像
#else
class SRandSecureRandom : public SecureRandom {
public:
将这些行删除到#endif
子句,然后编辑
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)
只是
#else