Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
170 lines (129 sloc) 3.61 KB

Linux build guide

Please read the general build guide for information on dependencies required for all platforms. Only Linux specific instructions are found in this file.

Qt5 Dependencies

Should you choose not to install Qt5 via a package manager that handles dependencies for you, you may be missing some Qt5 dependencies. On Ubuntu, for example, the following additional packages are required:

libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev

Ubuntu 16.04/18.04 specific build guide

Ubuntu 18.04 only

Add the universe repository:
(This is not enabled by default on the server edition)

sudo add-apt-repository universe
sudo apt-get update

Prepare environment

Install Qt 5.10.1:

sudo dpkg -i hifiqt5.10.1_5.10.1_amd64.deb

Install build dependencies:

sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev

To compile interface in a server you must install:

sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1

Install build tools:

# For Ubuntu 18.04
sudo apt-get install cmake
# For Ubuntu 16.04
sudo sh --prefix=/usr/local --exclude-subdir

Install Python 3:

sudo apt-get install python3.6

Get code and checkout the tag you need

Clone this repository:

git clone

To compile a RELEASE version checkout the tag you need getting a list of all tags:

git fetch -a
git tags

Then checkout last tag with:

git checkout tags/v0.79.0


Create the build directory:

mkdir -p hifi/build
cd hifi/build

Prepare makefiles:

cmake -DQT_CMAKE_PREFIX_PATH=/usr/local/Qt5.10.1/5.10.1/gcc_64/lib/cmake ..

Start compilation of the server and get a cup of coffee:

make domain-server assignment-client

To compile interface:

make interface

In a server, it does not make sense to compile interface

Running the software

Domain server

Running domain server:


Assignment clients

Running assignment client:

./assignment-client/assignment-client -n 6


Running interface:


Go to localhost in the running interface.

Ubuntu 18.04 only

In Ubuntu 18.04 there is a problem related with NVidia driver library version.

It can be workarounded following these steps:

Uninstall incompatible nvtt libraries:

sudo apt-get remove libnvtt2 libnvtt-dev

Install libssl1.0-dev:

sudo apt-get -y install libssl1.0-dev

Clone castano nvidia-texture-tools:

git clone
cd nvidia-texture-tools/

Make these changes in repo:

  • In file VERSION set 2.2.1
  • In file configure:
    • set build="release"
    • set -DNVTT_SHARED=1

Configure, build and install:

sudo make install

Link compiled files:

sudo ln -s /usr/local/lib/ /usr/lib/
sudo ln -s /usr/local/lib/ /usr/lib/
sudo ln -s /usr/local/lib/ /usr/lib/
sudo ln -s /usr/local/lib/ /usr/lib/

After running this steps you can run interface:

You can’t perform that action at this time.