Compilations
To ensure proper functionality of the program, it is crucial to follow several small yet important steps illustrated in our landing page.
Same host and target
If the compiling machine and the target machine having the same platform, you can just build it without using any toolchain file.
Windows
Install MSVC build tools, or the Visual Studio IDE (requires C++17 support)
Install CMake
Linux
Install gcc7 (requires C++17 support) or newer:
sudo apt-get install gcc-7
Install CMake (requires version 3.11 or newer)
Clone the source file:
git clone --recurse-submodules https://bitbucket.org/lpresearch/openzen.git
Prepare a build tree:
cd openzen mkdir build && cd build cmake .. // in case you want to build the optional components (Python, C# support etc.) // please check the optional components in the appendix cmake -DZEN_XXXX ..
3. Build the project: cmake --build .
4. The library built and sample projects are under openzen/build
directory.
Different host and target (Cross compilation)
Raspberry Pi
For compilation on your PC, you need to download cross compilation toolchain from either one of the following sites:
Refer it when generating cmake cache by
cmake ./path/to/openzen/cmake -DCMAKE_TOOLCHAIN_FILE=Toolchain-RaspberryPi.cmake
then you can build an OpenZen library .so
by calling
cmake --build ./path/to/your/build/tree -DZEN_PYTHON=ON
Appendix
Available Build Options
These build options can be supplied to the cmake command to customize your OpenZen build. For example
Name | Default | Description |
---|---|---|
ZEN_USE_STATIC_LIBS | OFF | Compile OpenZen as a static library |
ZEN_STATIC_LINK_LIBCXX | OFF | Option to statically link libstdc++ to be portable to older systems (Linux only) |
ZEN_BLUETOOTH | ON | Compile with bluetooth support (details) |
ZEN_BLUETOOTH_BLE | OFF | Compile with bluetooth low-energy support, needs Qt installed (details) |
ZEN_NETWORK | OFF | Compile with support for network streaming of measurement data |
ZEN_CSHARP | ON | Compile C# bindings for OpenZen |
ZEN_PYTHON | OFF | Compile Python bindings for OpenZen |
ZEN_TESTS | ON | Compile with OpenZen tests |
ZEN_EXAMPLES | ON | Compile with OpenZen examples |