The following guide will step you through the process of downloading, building, and installing the current release of libbson.
The library is continuously tested on GNU/Linux, Windows 7, Mac OS X 10.10, and Solaris 11 (Intel and Sparc), with GCC, Clang, and Visual Studio 2010, 2013, and 2015.
The library supports the following operating systems and CPU architectures:
|Operating Systems||CPU Architectures||Compiler Toolchain|
|GNU/Linux||x86 and x86_64||GCC 4.1 and newer|
|Solaris 11||ARM||Clang 3.3 and newer|
|Mac OS X 10.6 and newer||PPC||Microsoft Visual Studio 2010 and newer|
|Windows Vista, 7, and 8||SPARC||Oracle Solaris Studio 12|
Install with a Package Manager¶
The libbson package is available on recent versions of Debian and Ubuntu.
$ apt-get install libbson-1.0
On Fedora, a libbson package is available in the default repositories and can be installed with:
$ dnf install libbson
On recent Red Hat systems, such as CentOS and RHEL 7, a libbson package is available in the EPEL repository. To check version available, see https://apps.fedoraproject.org/packages/libbson. The package can be installed with:
$ yum install libbson
Installing from Source¶
The following instructions are for UNIX-like systems such as GNU/Linux, FreeBSD, and Solaris. To build on Windows, see the instructions for Building on Windows.
The most recent release of libbson is 1.6.1 and can be downloaded here. The following snippet will download and extract the current release of the driver.
$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.6.1/mongo-c-driver-1.6.1.tar.gz $ tar -xzf libbson-1.6.1.tar.gz $ cd libbson-1.6.1/
Minimal dependencies are needed to build libbson. On UNIX-like systems, pthreads (the POSIX threading library) is required.
Make sure you have access to a supported toolchain such as GCC, Clang, SolarisStudio, or MinGW. Optionally,
pkg-config can be used if your system supports it to simplify locating proper compiler and linker arguments when compiling your program.
The following will configure for a typical 64-bit Linux system such as RedHat Enterprise Linux 6 or CentOS 6. Note that not all systems place 64-bit libraries in
/usr/lib64. Check your system to see what the convention is if you are building 64-bit versions of the library.
$ ./configure --prefix=/usr --libdir=/usr/lib64
For a list of all configure options, run
configure completed successfully, you'll see something like the following describing your build configuration.
libbson 1.6.1 was configured with the following options: Build configuration: Enable debugging (slow) : no Enable extra alignment (required for 1.0 ABI) : no Compile with debug symbols (slow) : no Enable GCC build optimization : yes Code coverage support : no Cross Compiling : no Big endian : no Link Time Optimization (experimental) : no Documentation: man : no HTML : no
We can now build libbson with the venerable
To install the driver, we use
make with the
$ sudo make install
Building on Windows¶
Building on Windows requires Windows Vista or newer and Visual Studio 2010 or newer. Additionally,
cmake is required to generate Visual Studio project files.
Let's start by generating Visual Studio project files for libbson. The following assumes we are compiling for 64-bit Windows using Visual Studio 2010 Express which can be freely downloaded from Microsoft.
> cd libbson-1.6.1 > cmake -G "Visual Studio 14 2015 Win64" \ "-DCMAKE_INSTALL_PREFIX=C:\libbson" > msbuild.exe ALL_BUILD.vcxproj > msbuild.exe INSTALL.vcxproj
You should now see libbson installed in
You can disable building the tests with:
> cmake -G "Visual Studio 14 2015 Win64" \ "-DCMAKE_INSTALL_PREFIX=C:\libbson" \ "-DENABLE_TESTS:BOOL=OFF"