Skip to content

Compile YUView

Christian edited this page Jan 8, 2020 · 42 revisions

If you want to compile YUView from source, here is a short how-to. We use qmake for the project so there is actually not much to consider when compiling the sources. Qt should take care of everything necessary to generate the executable. However, here is a short introduction for the supported platforms:

Supported Compilers

We have built and tested YUView using Qt 5.8 and Qt 5.11 with the following compilers:

  • VC2013, VC2015
  • GCC Version 5.4.0 (including MinGW-x64)
  • Clang Version 6.0

Windows

On windows you will have to install Qt and a compiler. We use the Visual Studio compiler and MinGW. Both should work. If you installed this you can just compile using the YUView.pro file:

C:\Qt\somewhere\qtbase\bin\qmake.exe YUView.pro
nmake  # For visual studio
make   # For MinGW

QtCreator

You can also open the YUView.pro file in the QtCreator. Here you will have to configure the project to use a compiler (Qt should auto detect the Visual Studio and MinGW compilers) and hit the build button.

Visual Studio

One more option is to let qmake create a visual studio project file for you:

qmake.exe -tp vc

Visual Studio Code

If you are using visual studio code you can compile YUView in there as well. The following prerequirements must be met:

  • Installed Qt
  • Installed C++ build environment (either install Visual Studio or just the Build environment)
  • Make sure "terminal.integrated.automationShell.windows": "cmd.exe" is set in the config so that this is not called in powershell

Use the following task.json entry to compile using qmake and nmake. Correct the paths to your needs.

    "tasks": [
        {
            "label": "Qmake debug",
            "type": "shell",
            "windows":{
                "command": "call \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\" && \"C:\\Qt\\5.12.6\\msvc2017_64\\bin\\qmake.exe\" CONFIG+=debug",
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Build",
            "type": "shell",
            "windows":{
                "command": "call \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\" && nmake",
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]

The following launch.json configuartion uses a qt5 natvis file to decorate Qt types while debugging:

    "configurations": [
        {
            "name": "(Windows) Launch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/debug/YUView.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "visualizerFile": "${workspaceFolder}/.vscode/qt5.natvis"
        }

MAC OS

On MacOS, compilation is simple as well. You need to install XCode (from the app store) as well as Qt (from the Qt Download page). Now you can open the YUView.pro file using the QtCreator, hit configure and build YUView. Alternatively, compilation also works from the command line using qmake and make.

Linux

On Linux systems compiling is similarly easy. You have to install Qt and a compiler. Most Linux distributions ship with the gcc compiler so there is no need to install a compiler.

When Qt is installed, you can use qmake or the QtCreator to build YUView. On the command line you can just use qmake and then make. Using the creator, just open the YUView.pro file, configure the project to use a compiler (Qt should auto detect gcc) and hit the build button. Additionally you can install the program running sudo make install. This will also install a desktop entry.

Unfortunately, it depends a little on your distribution how to obtain Qt. Here are some hints for distributions that we tested:

Ubuntu

Ubuntu 18.x

On Ubuntu 18, Qt5 can be easily installed using apt:

  • If you don't have these installed already: sudo apt install git build-essential
  • sudo apt install qt5-default libqt5charts5 libqt5charts5-dev
  • qmake
  • make

Ubuntu 16.x

On Ubuntu 16.04, Qt5 can be easily installed using the apt install tool:

  • If you don't have these installed already: sudo apt install git build-essential
  • sudo apt install qt5-default libqt5opengl5-dev.
  • qmake
  • make

Ubunut 14.x

Unfortunately, qt5 is not present in the package repository for older Ubuntu versions. In Ubuntu 14.x for example, qt5 is not in the repositories. One option is to go to the qt homepage and download the latest qt version from here. Start the installer and select the latest qt-gcc version. A second option is to install qt from the following repositories:

  • sudo add-apt-repository ppa:beineri/opt-qt571-trusty -y
  • sudo apt-get update -qq
  • sudo apt-get install -qq qt57base; source /opt/qt57/bin/qt57-env.sh

Arch Linux

On Arch, just use packman to update the packages/install Qt and compilation should work using qmake and make. If you selected the default installation, Qt should already be installed.

Hints

Error cannot find -lGL

If you get the error cannot find -lGL the openGL libraries were not found. These libraries are required by Qt. You will have to install these for your linux distribution. However, the libGL might already be on your system, but the compiler could just not find it. You can try locate libGL to see if the library is already installed. If yes, you can just link it to a library search path like /usr/lib. For example on Ubuntu 15.4 this works:

sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so

Debug build

If you want to compile a debug version of YUView, you can run qmake with the CONFIG+=debug parameter.