MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

विंडोज़ में मोंगोडीबी सी ड्राइवर बनाना

ऐसा प्रतीत होता है कि विंडोज़ के लिए libsasl2 पोर्ट पूर्ण नहीं है। हालाँकि मुझे अंततः संकलन करने के लिए libsasl मिला, लेकिन कोई libsasl2 का उत्पादन नहीं हुआ। ऐसा प्रतीत होता है कि SASL का उपयोग MongoDB C ड्राइवर द्वारा Kerberos के लिए किया जाता है। मुझे नहीं पता कि क्या उन्होंने केर्बरोस को libsasl2 लाइब्रेरी के पोर्ट के बिना विंडोज़ पर सी ड्राइवर के साथ काम करने की कोशिश की है।

हालाँकि, मैं अंततः संकलित करने के लिए MongoDB C ड्राइवर प्राप्त करने में सक्षम था। मैंने शुरुआत में सी:\ की उपनिर्देशिकाओं का उपयोग करके संकलन करने की कोशिश की, सी:\ मोंगो-सी-ड्राइवर इत्यादि के विपरीत, लेकिन यह अच्छी तरह से काम नहीं करता था, लेकिन जब मैंने दस्तावेज़ीकरण में निर्देशिका संरचना का उपयोग करके संकलित किया, तो संकलन सफल हुआ।

इसे संकलित करने के लिए, मैंने संकलन में SASL लाइब्रेरी को अक्षम कर दिया। मुझे नहीं लगता कि इसकी आवश्यकता होगी जब तक कि आपको केर्बेरोस का उपयोग करने की आवश्यकता न हो। मुझे शुरू में SASL (शायद 64 बिट का उपयोग करने के कारण) को स्पष्ट रूप से अक्षम करना पड़ा - जो कि -DENABLE_SASL=no के साथ किया जा सकता है मोंगो-सी-ड्राइवर को संकलित करते समय।

ये चरण हैं:

इस पेज से ड्राइवर स्रोत मिला:https://github.com/mongodb/mongo- सी-ड्राइवर/रिलीज़ (1.3.5)

https://cmake.org/download/ से cmake मिला

विंडोज इंस्टालर का उपयोग करके स्थापित सेमेक, सभी उपयोगकर्ताओं के लिए पथ में सेमेक जोड़ना। अपडेट का रास्ता पाने के लिए मुझे लॉग आउट करना पड़ा और वापस लॉग इन करना पड़ा।

फिर, मैंने mongo-c-driver-1.3.5 स्रोत को c:\mongo-c-driver-1.3.5

में कॉपी किया

फिर,

मैंने विजुअल स्टूडियो MSBuild कमांड प्रॉम्प्ट का उपयोग किया, जिसकी शुरुआत व्यवस्थापक के रूप में चलाएँ

C:\mongo-c-driver-1.3.5\src\libbson>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14"
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
  No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:3 (project):
  No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeOutput.log".
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeError.log".

यह पता चला है कि सी कंपाइलर विजुअल स्टूडियो की मानक स्थापना के साथ स्थापित नहीं हैं, इसलिए मुझे विजुअल स्टूडियो के सी ++ घटक को स्थापित करना पड़ा। मैंने सी ++ कॉमन टूल्स स्थापित किए, लेकिन सी ++ के लिए एमएफसी नहीं और न ही एक्सपी सपोर्ट। उस ने कहा कि यह 3 जीबी डिस्क स्थान का उपयोग करेगा (39.5 पर शुरू हुआ, 37.0 पर समाप्त हुआ, इसलिए 2.5 जीबी का उपयोग किया गया)

एक बार जो इंस्टाल हो गया:

cd \mongo-c-driver-1.3.5\src\libbson
cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14" .
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
cd ..\..

C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- The C compiler identification is MSVC 19.0.23026.0
-- The CXX compiler identification is MSVC 19.0.23026.0
-- Check for working C compiler using: Visual Studio 14 2015
-- Check for working C compiler using: Visual Studio 14 2015 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 14 2015
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found BSON: C:/libmongoc/lib/bson-1.0.lib;ws2_32
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing:  OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
-- Searching for sasl/sasl.h
--   Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
--   Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5

OpenSSL मौजूद नहीं था, इसलिए मैंने http://slproweb से 32 बिट Win32 OpenSSL v1.0.2h प्राप्त किया। com/products/Win32OpenSSL.html

फिर, मैंने ओपनएसएसएल स्थापित किया। स्थापना निर्देशिका को C:\work\OpenSSL-Win32 में बदल दिया, और मैंने OpenSSL इंस्टॉलर को बायनेरिज़ को Windows सिस्टम निर्देशिका में स्थापित करने की अनुमति दी

अब,

C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- Found OpenSSL: optimized;C:/work/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/ssleay32MDd.lib;optimized;C:/work/OpenSSL-Win32/lib/VC/libeay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/libeay32MDd.lib (found version "1.0.2h")
-- Searching for sasl/sasl.h
--   Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
--   Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5

C:\mongo-c-driver-1.3.5>

msbuild.exe ALL_BUILD.vcxproj
(lots of output, with some yellow warnings, but no red errors)

msbuild.exe INSTALL.vcxproj

और अब मोंगो-सी-ड्राइवर बनाया गया है। मैं ssl का उपयोग करके अपने MongoDB सर्वर से कनेक्ट करने के लिए Visual C++ के साथ इसका उपयोग कर सकता हूं।

अब, मैं यह पता लगाने की कोशिश कर रहा हूं कि नए mongo-c-driver का उपयोग करने के लिए Embarcadero RADStudio C++ Builder कैसे प्राप्त करें। बस .dll को एप्लिकेशन के फ़ोल्डर में कॉपी करने से bson dll में निरस्त हो जाता है। स्टैक ट्रेस इस तरह दिखता है:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में एक सरणी मान को कैसे अपडेट करें

  2. कैसे उत्तरदायी mongodb_user, mongodb_replicaset मॉड्यूल काम कर रहे हैं?

  3. मोंगोडब में मिलान किए गए रिकॉर्ड को कैसे खोजें?

  4. मोंगो - रूबी कनेक्शन समस्या

  5. डोकर-लिखें में mongoimport मुझे 'सेवा प्रारंभ नहीं कर सकता' त्रुटि देता है