nathan lachenmyer
nathan lachenmyer

Reputation: 5550

mongo-c-driver cannot find libbson

I'm trying to build the mongo-cxx-driver (eventually), and the first step is to build the mongo-c-driver (which requires libbson).

I'm running Windows 10 and using Visual Studio 2015 as my compiler. I was able to run CMake and build libbson just fine all of the projects built just fine. Now I have copies of bson-static-1.0.lib built in mongo-c-driver/src/libbson/build/Debug/ and mongo-c-driver/src/libbson/build/Release/. This seems like everything is correct.

The next step is to build the mongo-c-driver. I ran CMake and tried to create the Visual Studio solutions, but got the errors:

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
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
BSON (ADVANCED)
    linked by target "mongoc_shared" in directory C:/Users/sdf/Downloads/mongo-c-driver-1.3.5
    linked by target "mongoc_static" in directory C:/Users/sdf/Downloads/mongo-c-driver-1.3.5

Configuring incomplete, errors occurred!
See also "C:/Users/sdf/Downloads/mongo-c-driver-1.3.5/build/CMakeFiles/CMakeOutput.log".

It looks like the variable BSON isn't set to the right value -- it's value is BSON-NOTFOUND right now. Does anyone know what the correct value is for BSON, and if it should have gotten set automatically during the process of compiling libbson?

Upvotes: 2

Views: 3001

Answers (3)

Joyo Waseem
Joyo Waseem

Reputation: 680

Smart way of compiling MongoDB c++ driver.use vcpkg

Download vcpkg follow the instructions as mentioned on git. https://github.com/Microsoft/vcpkg

Step 1 C:\vcpkg>.\vcpkg search mongodb

Step 2 C:.\vcpkg search mongodb install mongo-cxx-driver

Stap 3 C:\vcpkg>.\vcpkg integrate install

useful link.https://stackoverflow.com/a/46981525/8617780

Upvotes: 1

jean
jean

Reputation: 2990

First, you need build INSTALL project in libbson sln (run vs in admin mode, because it need create lib folders like linux way)

Then define BSON_INCLUDE_DIR to include folder which the INSTALL project created and BSON to lib file you build for example C:/Program Files/libbson/lib/bson-static-1.0.lib in cmake (This BSON naming is problematic, should rename to BSON_LIB)

Upvotes: 0

A. Jesse Jiryu Davis
A. Jesse Jiryu Davis

Reputation: 24007

Please follow the "installing on Windows" instructions carefully:

https://api.mongodb.com/c/current/installing.html#building-windows

It seems you're missing the part where you set CMAKE_INSTALL_PREFIX when building libbson, then install libbson and build libmongoc with the same CMAKE_INSTALL_PREFIX setting.

Upvotes: 0

Related Questions