External library dependencies and build options

List of all MRPT dependencies

1. Mandatory


MRPT crucially relies on Eigen3, so this dependency is mandatory. Still, for convenience of users, if Eigen3 is not present in the system MRPT’s CMake build system will automatically switch to an embedded version of this library.

Read more about the integration of MRPT and Eigen3 in https://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes

3. Optional


This optional library is needed for interfacing FTDI USB chips in the FIFO parallel mode.

If not present, the following classes will raise exceptions upon usage:


The ASPRS LiDAR LAS file format for point cloud datasets. If available, it will provide the functionality of loading/saving mrpt::maps::CPointsMaps to LAS files.

See: libLAS interface for CPointsMap (in

Since MRPT 1.5.0, building MRPT against liblas is not required. In turn, user programs requiring this feature must make sure of adding the required compiler and linker flags to their programs, and including the additional file #include <mrpt/maps/CPointsMap_liblas.h>.

Install libLAS in Ubuntu/Debian with: sudo apt-get install liblas-dev liblas-c-dev


This optional library is needed to support reading/writing PCAP files (Network dump files) in these classes:


This optional library is needed as a dependency of the embedded version of libfreenect for communicating with Kinect sensors.

If not present, the following classes will raise exceptions upon usage:


ZeroMQ is not required to compile MRPT, but if the user application uses it, then MRPT offers a few functions for sending and receiving MRPT objects via ZMQ sockets.



This suite provides many efficient sparse algebra routines, e.g. CHOLMOD.

SuiteSparse’s CSparse library: Mandatory, but an embedded version exists if the library is not found in the system.

Used in these classes: