Windowsへのlibsasl2の移植が完了していないようです。最終的にlibsaslをコンパイルしましたが、libsasl2は生成されませんでした。 SASLはKerberos用のMongoDBCドライバーによって使用されているようです。 libsasl2ライブラリのポートなしでWindows上のCドライバーでKerberosを動作させようとしたかどうかはわかりません。
ただし、MongoDBCドライバーを最終的にコンパイルすることができました。最初はC:\ mongo-c-driverなどではなくC:\のサブディレクトリを使用してコンパイルしようとしましたが、うまくいきませんでしたが、ドキュメントのディレクトリ構造を使用してコンパイルすると、コンパイルは成功しました。
コンパイルするために、コンパイルでSASLライブラリを無効にしました。 Kerberosを使用する必要がない限り、必要になるとは思いません。最初はSASLを明示的に無効にする必要がありました(おそらく64ビットを使用しているため)-これは-DENABLE_SASL=no
で実行できます mongo-c-driverをコンパイルするとき。
手順は次のとおりです。
このページからドライバーソースを取得しました: https://github.com/mongodb/mongo- c-ドライバー/リリース (1.3.5)
https://cmake.org/download/ からcmakeを入手しました
Windowsインストーラーを使用してcmakeをインストールし、すべてのユーザーのパスにcmakeを追加しました。更新するパスを取得するには、ログアウトしてから再度ログインする必要がありました。
次に、mongo-c-driver-1.3.5ソースをc:\ mongo-c-driver-1.3.5
にコピーしました。次に、
管理者として実行
で開始したVisualStudioMSBuildコマンドプロンプトを使用しました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".
CコンパイラはVisualStudioの標準インストールではインストールされないことが判明したため、VisualStudioのC++コンポーネントをインストールする必要がありました。 C ++ Common Toolsをインストールしましたが、C++用のMFCやXPサポートはインストールしていません。つまり、3 GBのディスク容量を使用することになります(39.5で始まり、37.0で終わるため、2.5 GBが使用されます)
インストールしたら:
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ビットのWin32OpenSSLv1.0.2hを入手しました。 com / products / Win32OpenSSL.html
次に、OpenSSLをインストールしました。インストールディレクトリを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
そして今、mongo-c-driverが構築されました。 Visual C ++で使用して、sslを使用してMongoDBサーバーに接続できます。
今、私はEmbarcadero RADStudio C++Builderに新しいmongo-c-driverを使用させる方法を理解しようとしています。 .dllをアプリケーションのフォルダにコピーするだけで、bsondllが異常終了します。スタックトレースは次のようになります: