YARP does not have any strong build dependencies, the only requirements are a C++ compiler and CMake. We assume you have already installed them in your system.
Compilation instructions for YARP are reported here: Installing YARP. This page reports instructions for compiling the dependencies in case you do not want to use precompiled libraries.
ACE is a free and open source library that provides an excellent portable interface to a vast array of operating systems, dealing with the details so you don't have to.
ACE is required on all the platforms except for Linux. Without ACE, YARP will be able to connect using TCP only, and will have limited functionality.
libace-dev
package (on rpm-based systems, try libace-devel). sudo apt-get install libace-dev
Compile ACE using our summary instructions, below, or through the official method given here. Don't panic! The instructions cover a lot of operating systems and compilers. Just look carefully for your combination.
ACE will take a while to compile, but if you can do it you'll be able to deal with anything we throw at you.
If you are on a system with a binary ACE package (Debian, Redhat, ... – it is usually called libace-dev
or libace-devel
), then you can just install that and you are done. Otherwise you need to download ACE-5.5.tar.gz
as described above and follow these steps:
ACE-5.5.tar.gz
in the directory $HOME/work/
. Then, in this directory, type: tar xzvf - < ACE-5.5.tar.gz
export ACE_ROOT=$PWD/ACE_wrappers setenv ACE_ROOT $PWD/ACE_wrappers
ACE_wrappers
directory. cd $ACE_ROOT/include/makeinclude/ ln -s platform_linux.GNU platform_macros.GNU cd $ACE_ROOT/ace ln -s config-linux.h config.h
platform_*
.GNU and config-*
.h files and pick the one that matches you. cd $ACE_ROOT/ace; make
ACE_wrappers/ace
, for example: $ ls $ACE_ROOT/lib/ libACE.so libACE.so.5.4.7(the
.so may be
.dylib or other variants): export LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH setenv LD_LIBRARY_PATH $ACE_ROOT/lib:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH
). $ACE_ROOT/lib
to a standard library directory, for example, /usr/lib
. ACE_wrappers
directory, recreate it with tar again as above, and follow carefully all the detailed instructions here.For Borland C++Builder, MinGW, Cygwin instructions build instructions are here.
For Visual Studio, here's a brief summary of the steps.
ACE-5.5.zip
as described above. ACE_wrappers
in the unpacked material. ACE_wrappers\ace
directory, create a file called config.h
and edit it to be just this: ACE_wrappers\ace
. ACE.dsw
or ace_vc8.sln
. kernel32.lib
, user32.lib
, advapi32.lib
. See also here (FIXME broken) ACE_wrappers/lib
, including ACE.dll
, ACE.lib
, ACEd.dll
, ACEd.lib
(if you compiled both release and debug versions). ACE_wrappers\lib
in your PATH
environment variable whenever you run programs that uses ACE. See generic instructions for setting environment variables here. ACE_ROOT
to hold the path to ACE_wrappers
. This will make it easier to find the libraries and header files.On Windows you can unzip the ACE distribution and simply open the workspace file contained within it from within Visual Studio and then start the compilation. We recommend you compile twice, once in debug mode and release mode, so you have both versions of the library available later.
Eigen is a C++ template header only library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
If not installed, you will not be able to enable the YARP_math
library.
The most convenient way of installing Eigen in recent Linux distribution is using the system package manager. For example in Debian/Ubuntu you can install the libeigen3-dev
package by typing on a terminal:
The most convenient way of installing Eigen in macOS is using homebrew. If you have installed homebrew on your computer, you can install eigen by typing on a terminal:
The most convenient way of installing Eigen on Windows is by downloading the compressed archive of the latest version of Eigen from the Eigen website. As Eigen is an header only library, you can just unzip the archive in a directory, and point the EIGEN3_ROOT
environment variable to the directory in which you uncompressed the archive. In particular EIGEN3_ROOT
should point to the directory containing the signature_of_eigen3_matrix_library
file.
Qt 5.2 or later is required. YARP GUIs use the QtQuick Controls module that is available only since 5.2.
The recommended way to install Qt5 on your system is to use the binary packages supplied by your distribution (if available). If they are not available, you can download a binary release from the Qt Project website, or download the source code, and build it yourself.
If you installed Qt5 from the Qt Project website, you will also need need to set up the environment variable Qt5_DIR
pointing to the location where Qt5 cmake modules are, e.g. for Qt 5.3 on Linux 64 bit:
export Qt5_DIR=/path/to/Qt/5.3/gcc_64/lib/cmake/Qt5/
Alternatively you can add the install path to the CMAKE_PREFIX_PATH environment variable, for example:
export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/path/to/Qt/5.3/gcc_64/
On Debian and Ubuntu systems, you need to install the following packages:
You can install them by running:
sudo apt-get install qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev \ qml-module-qtquick2 qml-module-qtquick-window2 \ qml-module-qtmultimedia qml-module-qtquick-dialogs \ qml-module-qtquick-controls
If your distribution does not supply binary packages for Qt5, you can download a binary release from the Qt Project website, or download the source code, and build it yourself.
Qt5 binary package for Windows is available from the Qt Project website
Qt5 binary package for Mac is available from the Qt Project website