Link Search Menu Expand Document

This page began as the Few-Frills How-To for building on Windows 10, but now we are trying to fill it in with more details. Please help give us feedback on what needs to be improved.

Quick summary:

  1. Development Tools
    1. Git client (one of SourceTree, Git Kraken, SmartGit, or Git for Windows)
    2. CMake
    3. Visual Studio
  2. Build/Install Libraries
  3. Build OpenSpace
  4. Notes

Development Tools

Git Client

The source code for OpenSpace is distributed via GitHub, and so you will need a Git client to obtain a copy of the source code. OpenSpace uses git submodules, so a client which can handle these gracefully is preferred. These include:

  1. Fork
  2. SourceTree
  3. SmartGit
  4. Git GUI (a part of the basic git download or Visual Studio)

Visual Studio 2019

Visual Studio 2019 is the standard Interactive Development Environment (IDE) for Windows. The “community” version is a free download. When you install it, be sure to select “Custom” configuration and select the C++ compiler – it is not included by default. You can also select a git client here (“Git GUI”). Installation could take a while (like an hour or so, depending on the machine). We are following the development of the C++ language quite closely, so there are more and more features that are no longer supported in Visual Studio 2017.


  • Download and run the CMake installer
  • If you are upgrading from version 3.4 or earlier, uninstall first. We require CMake 3.12 or newer.

Build/Install Libraries

Advice on directory structure

Building OpenSpace will be easier if you follow a few guidelines about where you put the source code and where you build OpenSpace the the libraries it needs. OpenSpace depends on several other software components, which are loaded as git submodules when you do a recursive clone. These are all in the ext/ subdirectory. One of these is a library called Ghoul, and Ghoul has it’s own submodules, in ext/Ghoul/ext/.

Build OpenSpace

Get via Git

Checkout OpenSpace recursively using SourceTree, SmartGit, or the command line. The command line git command is: git clone --recursive

Build OpenSpace

  1. Open CMake and set “Where is the source code:” to the directory you just cloned from github, for example develop/OpenSpace.
  2. Set “Where to build the binaries:” to the build subdirectory, for example: develop/OpenSpace/build
  3. Set CMake variables to enable or disable specific modules. The default settings are fine, but make sure that the following are enabled:
  4. Create an environment variable in your Windows system for the path to the Qt directory. Do this by searching for Edit the system environment variables in the Windows search box and open it. Open Environment variables.... In System variables, click on Path and Edit and add the path to the folder where the Qt binaries are stored. For example, the path might look something like: C:/Qt/5.15.2/msvc2019_64/bin. In Cmake, the Qt5_DIR should now be automatically set. It may be necessary to manually set this to the location of your Qt installation if it does not show up (the path can also be to a higher version of Qt than 5).

  5. Press the Configure button in CMake. Expect errors, which you will then correct:
    • The first time you press Configure you are asked to select a “generator” for the project. Select “Visual Studio 16 2019 Win64” (the Win64 is the important part)
    • Configure again, as needed, until you resolve all the errors (except anything that says “this warning is for project developers”)
    • You can start over by pulling down “File->Delete Cache”.
  6. Press the Generate button. This creates the Visual Studio Solution (.sln) file and supporting Project (.vcxproj) files.
  7. The generated solution file can be opened via Open Project. Otherwise, navigate to the build directory and open the main Solution file, called OpenSpace.sln
  8. Select either the “Launcher” or the “OpenSpace” project as a startup project via right click in the “Solution Explorer” and build them
  9. You can start either application from within Visual Studio or by navigating to OpenSpace/bin/openspace

Copy Qt dll files to executable directory

Copy the entire plugins/platforms/ directory from the Qt installation (e.g. Qt/5.xx/msvc2019_64/bin/) to the bin directory where OpenSpace.exe is generated (e.g. bin/Release/).

Compiling Boost

Some of the optional modules have Boost as a dependency, which will need to be compiled separately. See for a complete compilation instructions.

  1. Download the newest version of the source from here.
  2. Unpack the boost folder to its final destination
  3. Start the Visual Studio x64 native tools command prompt and navigate to the folder
  4. In the boost folder, run bootstrap.bat and wait
  5. Run the b2 command
  6. Add the boost folder as the BOOST_ROOT environment variable



  • Create your build directory to store the configuration files anywhere outside the source files. It’s not required to be named build but that’s common. You can keep it in the top level of your repository.
  • Unlike the Mac & Linux platforms, the Windows Debug version will run much slower than its Release counterpart due to additional tests by the standard library. The RelWithDebInfo build option will enable optimizations but also makes debugging inside of Visual Studio possible.
  • When in doubt File -> Delete Cache and start again.
  • To execute cmake from visual studio command line, cmake args must be passed with -D:
          cd develop/OpenSpace
          mkdir build & pushd build
          cmake -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 16 2019 Win64" ..
          cmake --build build --config Release


  • You might find it easier to use SSH instead of HTTPS, especially if you’re using Two-Factor Authentication with GitHub.
  • If you use the command line interface for git, remember that OpenSpace has many submodules. You’ll want to git clone --recursive and/or use the git submodule commands. The submodule commands will need to be run in both the main repository and ext/ghoul.

Visual Studio

  • When switching between Release and Debug configuration in Visual Studio, there has been cases where some targets aren’t getting rebuilt properly. Therefore, highlight tinyxml2static and VRPN in the solution, right click and select Rebuild Selection after changing build configuration.


If Windows is complaining that it cannot find the VCOMP120.dll, download the Visual Studio 2013 Redistributable. On Windows 10, this is not installed by default anymore.