It is common for IT companies (at least in Germany, automotive field) to use Ubuntu Linux LTS in a VirtualBox on Windows or Mac hosts. This way the employee can use Microsoft Outlook / Office, Microsoft Skype, Cisco Spark, or other proprietary collaboration tools, and at the same time use the supplied virtual machine for development.
By default VirtualBox doesn’t configure any 3D acceleration or multi-core CPU for the guest.
One needs to change these settings in order to have a more responsive desktop environment
and to compile faster Also important not to forget about the installation of the VirtualBox
Guest Additions.
Running glxinfo
on a Ubuntu Linux 16.04 LTS in VirtualBox 5.1.18 gives back this information:
OpenGL vendor string: Humper OpenGL renderer string: Chromium OpenGL version string: 2.1 Chromium 1.9 OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
As it turns out this is not enough to run Qt Creator 4.2.1. Qt Creator simply displays a black welcome screen on Ubuntu Linux 16.04 LTS, or simply crash on Ubuntu 14.04 / 12.04 LTS:
If Qt Creator is run from command line, it will give out these messages (Ubuntu 16.04 LTS):
QOpenGLFramebufferObject: Unsupported framebuffer format. QOpenGLFramebufferObject: Unsupported framebuffer format.
If you do a web search after “Qt Creator VirtualBox crash” you will find out how to fix this problem – either disabling the welcome plug-in, or disable the 3D acceleration of your VirtualBox.
Disabling the 3D acceleration means that the system will use a software OpenGL driver.
But then again why not simply use a software OpenGL driver just for Qt Creator and not for the whole system?
Qt Creator ships on Windows with a software OpenGL driver you can find it under
Qt Creator’s bin directory and it’s named opengl32sw.dll
. If you rename the file
to opengl32.dll
you will force Qt Creator to use the software OpenGL driver.
What about Linux? Unfortunately Qt Creator doesn’t ship the equivalent OpenGL driver, so you will have to build it yourself, or download the precompiled binaries that I will provide at the end of the article.
If you look at Mesa 3D’s llvmpipe page you will see how easy it is to build the software driver:
- Install the prerequisites
sudo apt install g++ scons llvm-dev
- Get the source code
wget https://mesa.freedesktop.org/archive/mesa-17.0.2.tar.xz
- And compile with
scons build=release libgl-xlib
This is true if you have all the prerequisites! If you don’t have them, then it’s a process of compile, break on error, install missing package, and then try again.
After a few attempts I’ve managed to have this build script:
#!/bin/bash sudo apt-get install g++ sudo apt-get install llvm-dev #for ubuntu 12.04 #sudo apt-get install llvm-3.4-dev #sudo sudo ln -s /usr/bin/llvm-config-3.4 /usr/bin/llvm-config sudo apt-get install scons sudo apt-get install x11-xcb-dev sudo apt-get install libx11-dev sudo apt-get install libx11-xcb-dev sudo apt-get install libxcb-xfixes-dev sudo apt-get install libxcb-xfixes sudo apt-get install libxfixes-dev sudo apt-get install libxcb1-dev sudo apt-get install libxext-dev sudo apt-get install libxi-dev sudo apt-get install libxrender-dev sudo apt-get install libxcb-glx0-dev sudo apt-get install libxdamage-dev sudo apt-get install libxcb-glx-dev sudo apt-get install libxcb-dri2-0-dev sudo apt-get install x11proto-gl-dev sudo apt-get install python-pip sudo pip install Mako sudo apt-get install flex sudo apt-get install bison sudo apt-get install zlib1g-dev wget https://mesa.freedesktop.org/archive/mesa-17.0.2.tar.xz tar xJf mesa-17.0.2.tar.xz cd mesa-17.0.2/ scons build=release libgl-xlib -j 3 cd build/linux-x86_64/gallium/targets/libgl-xlib/ cp libGL.so.1 ~/qtcreator-4.2.1/lib/qtcreator/
Precompiled binaries
Simply unpack with tar xJf ubuntu...tar.gz -C ~/qtcreator-4.2.1/lib/qtcreator/
and
Qt Creator should pick the software OpenGL driver on the next start.
Ubuntu 12.04
Ubuntu 12.04 is a bit dated and it requires a few workarounds in order to run Qt Creator 4.2.1
If you get the following error:
./qtcreator: symbol lookup error: /home/cristian/qtcreator-4.2.1/lib/Qt/plugins/platformthemes/libqgtk3.so: undefined symbol: g_type_ensure
Simply delete the libqgtk3.so
file. Qt Creator will then start.
The next runtime error will be, displayed as the reason for not being able to load many plugins:
"/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found"
Which gets fixed by installing the following ppa and a reboot for good measure:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install libstdc++6-4.7-dev
Software OpenGL Driver
You can use the Software OpenGL driver for other x86_64 programs, not only Qt Creator