Dependencies - VowpalWabbit/vowpal_wabbit Wiki
Get the source
# Important - ensure submodules are downloaded git clone --recursive https://github.com/VowpalWabbit/vowpal_wabbit.git cd vowpal_wabbit
sudo apt install libboost-dev libboost-thread-dev libboost-program-options-dev libboost-system-dev libboost-math-dev libboost-test-dev zlib1g-dev cmake g++ # Optional: flatbuffers sudo apt install libflatbuffers-dev # Optional: Building Python bindings sudo apt install libboost-python-dev
- If using WSL ensure you clone the repo in WSL and not in Windows to prevent broken line endings.
- If building on WSL on an NTFS drive, also be sure that the drive is mounted with the "metadata" option, or CMake will not complete successfully. (See: here)
brew install cmake boost zlib # Optional: flatbuffers brew install flatbuffers # Optional: Building Python bindings brew install boost-python3
The rest of the Linux instructions should apply to MacOS too.
10.0.16299.0Windows 10 SDK must be installed
When using CMake for Windows, dependencies can be managed through Vcpkg. Install the following dependencies with Vcpkg:
vcpkg --triplet x64-windows install zlib boost-system boost-program-options boost-test boost-align boost-foreach boost-math # Optional: flatbuffers vcpkg --triplet x64-windows install flatbuffers # Optional: flatbuffers vcpkg --triplet x64-windows install boost-python python3
- Add the flatbuffers tool directory to your
See here for the old instructions for the solution based approach.
Targeting non latest build tools
If targeting vs2017 (v141) with vs2019 (v142) also installed then additional steps will need to be taken to avoid linker errors due to version incompatibilities.
- From the triplets directory in your Vcpkg installation (e.g.
cp x64-windows.cmake x64-windows-v141.cmake
- Set the
set(VCPKG_PLATFORM_TOOLSET v141)to the new
- When installing the list of dependencies additionally specify:
vcpkg install --triplet x64-windows-v141 ...
- In the next step when building add the following to the CMake command line
A vendored dep is provided by the project and built as part of building VW. A system dep is externally provided by the OS or a package manager. All dependencies must be available as as system dependency and can optionally be provided vendored.
|Dependency||Available as vendored?||Can be system?||Optional?|
|flatbuffers||No||Yes, default||Yes, off by default.