To compile the library you need a C++14 conforming compiler (like g++ 5 and newer). The build system is written in CMake and the code is hosted in a Git repository, so you'll need CMake and Git, too.

LVR depends on several libraries that need to be installed on your system. Some of those dependencies are optional and are only used to enable more LVR features. A coarse overview of LVR's dependencies:

  • Boost
    • Filesystem
    • Program Options
    • Thread
    • System
    • Smart Pointer (Note: LVR is currently transitioning to std's smart pointer, so this dependency might be dropped in the future)
  • OpenGL
    • Glut 3
    • Glut XMU
  • Eigen 3
  • VTK 5
  • Flann
  • LZ4
In order to generate the Doxygen documentation, these additional packages are needed:
  • Doxygen
  • GraphViz
Additionally, if you want to use the LVR viewer, you have to install Qt. If you want to use PCL search trees for speeding up normal estimation, you will need to install PCL from

On Ubuntu (16.04)

To install all of the above dependencies on Ubuntu 16.04, you can simply execute these commands:
# The basics
sudo apt install build-essential cmake git

# Requires dependencies
sudo apt install libflann-dev liblz4-dev libgsl-dev libxmu-dev libboost-dev libeigen3-dev libvtk5-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libboost-mpi-dev libboost-all-dev freeglut3-dev

# For generating the documentation
sudo apt install doxygen libgraphviz-dev
This should give you an environment ready to use LVR.

Compiling the Software

After cloning the Git repository (or downloading the source code in another way), change into LVR's directory and execute these commands to compile LVR:
# Out-of-source builds are recommended
mkdir build       
cd build

# You can also choose "Debug" if you want to debug LVR code. This step will 
# show you if you are still missing some library dependencies.
cmake -DCMAKE_BUILD_TYPE=Release ..

# Compiling LVR. The number of the parameter -j denotes how many threads
# will be used (how many compilations will take place at once). Set 
# this number to approximately the number of CPU cores you have.
make -j8
  Afterwards, there should be several executables in 'build/bin/' as well as some other artifacts in 'build/'.


Installing LVR on MacOS works very similar to installing it on Linux. Please see the above section for more information.


Windows is not currently supported by LVR.

Leave a Reply