Hàm srandomdev có sẵn trong stdlib.h trên hệ thống BSD hoặc OSX, không phải trên hệ thống GNU như Cygwin hoặc Linux.
Có vẻ như tập lệnh xây dựng không nhận ra thực tế là bạn đang chạy trên Cygwin. Có một số tùy chọn mà bạn có thể thử. Những cái dễ nhất là
Thay đổi điều khoản ifdef
Nếu không có máy Windows để kiểm tra tính năng này, thật khó để xác nhận điều này sẽ hoạt động với bạn. Trong src / mongo / platform / random.cpp , chỉnh sửa dòng 108
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)
trở thành
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__) || defined(__CYGWIN__)
Xóa mệnh đề khác cuối cùng
Tìm dòng (141 trong phiên bản của tôi) của src / mongo / platform / random.cpp trông giống như
#else
class SRandSecureRandom : public SecureRandom {
public:
Xóa các dòng xuống #endif
mệnh đề và sau đó chỉnh sửa
#elif defined(__linux__) || defined(__sunos__) || defined(__APPLE__)
đơn giản là
#else