Skip to content

Dependencies windows old solution

Jack Gerrits edited this page Jun 5, 2021 · 1 revision

Windows

Ensure you have the source:

git clone --recursive https://github.com/VowpalWabbit/vowpal_wabbit.git
cd vowpal_wabbit
  • Either Visual Studio 2017 or 2019 can be used, VS2019 is recommended
  • Visual Studio 2017 (v141) toolset must be installed if using VS 2019
  • 10.0.16299.0 Windows 10 SDK must be installed
  • Nuget is used for other dependencies. Open vowpalwabbit/vw.sln in Visual Studio and restore Nuget dependencies

If you are not interested in using the flatbuffer support you can skip to: Next step: building on Windows

If using Visual Studio 2017 (v141) flatbuffers can be installed via Vcpkg by running:

vcpkg install flatbuffers:x64-windows
  • Set VcpkgIntegration environment variable to vcpkg.targets file on your machine. Example: VcpkgIntegration=<vcpkg_root>\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets
  • Set BUILD_FLATBUFFERS environment variable to BUILD_FLATBUFFERS on you machine. Should look like: BUILD_FLATBUFFERS=BUILD_FLATBUFFERS
  • Add the flatbuffers tool directory to your PATH: <vcpkg_root>\installed\x64-windows\tools\flatbuffers OR set flatcPath environment variable to the flatc.exe on your machine. Example: flatcPath=<vcpkg_root>\installed\x64-windows\tools\flatbuffers\flatc.exe

If using Visual Studio 2019 or if Visual Studio 2019 (v142) is installed then additional steps will need to be taken to avoid linker errors due to version incompatibilities. Flatbuffers will need to be installed via Vcpkg using v141:

  • From the triplets directory in your Vcpkg installation (e.g. <vcpkg_root>\triplets)
cp x64-windows.cmake x64-windows-v141.cmake
  • Set the VCPKG_PLATFORM_TOOLSET variable to v141 by adding set(VCPKG_PLATFORM_TOOLSET v141) to the new x64-windows-v141.cmake file
vcpkg install flatbuffers:x64-windows-v141
  • Set VcpkgIntegration environment variable to vcpkg.targets file on your machine. Example: VcpkgIntegration=<vcpkg_root>\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets
  • Set BUILD_FLATBUFFERS environment variable to BUILD_FLATBUFFERS on you machine. Should look like: BUILD_FLATBUFFERS=BUILD_FLATBUFFERS
  • Set VcpkgPlatformToolset environment variable to v141
  • Add the flatbuffers tool directory to your PATH: <vcpkg_root>\installed\x64-windows-v141\tools\flatbuffers OR set flatcPath environment variable to the flatc.exe on your machine. Example: flatcPath=<vcpkg_root>\installed\x64-windows-v141\tools\flatbuffers\flatc.exe
Clone this wiki locally