Error Linking QT application

Hi,

Also encountering this problem with Qt when trying to install mrtrix3 on Ubuntu 18.04.

First, installed dependencies with

$ sudo apt-get install git g++ python python-numpy libeigen3-dev zlib1g-dev libqt4-opengl-dev libgl1-mesa-dev libfftw3-dev libtiff5-dev

Got an error message in the configure.log file: ERROR: error linking Qt application!
Found this post and ran

$ sudo apt-get install libqt5opengl-dev

However, I keep getting the same error message. Here is the configure.log file

$ cat configure.log 

REPORT: 
MRtrix build type requested: release version

REPORT: Detecting OS: linux

REPORT: Looking for compiler [clang++]:
EXEC <<
CMD: clang++ --version
error invoking command "clang++": No such file or directory
>>


REPORT: not found

REPORT: Looking for compiler [g++]:
EXEC <<
CMD: g++ --version
EXIT: 0
STDOUT:
g++ (Ubuntu 6.5.0-2ubuntu1~18.04) 6.5.0 20181026
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>>


REPORT: g++ (Ubuntu 6.5.0-2ubuntu1~18.04) 6.5.0 20181026

REPORT: Checking for C++11 compliance:

COMPILE /tmp/tmpy6szWu.cpp:
---

#include <cstddef>
struct Base {
    Base (int);
};
struct Derived : Base {
    using Base::Base;
};

int main() {
  Derived D (int); // check for contructor inheritance
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpy6szWu.cpp -o /tmp/tmpy6szWu.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpy6szWu.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok

REPORT: Checking shared library generation:
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpaN8Oek.cpp -o /tmp/tmpaN8Oek.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpaN8Oek.o -shared -Wl,--sort-common,--as-needed -pthread -o libtest.so
EXIT: 0
>>


REPORT: ok

REPORT: Detecting pointer size:

COMPILE /tmp/tmpufaqC3.cpp:
---

#include <iostream>
int main() {
  std::cout << sizeof(void*);
  return (0);
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC /tmp/tmpufaqC3.cpp -o /tmp/tmpufaqC3.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpufaqC3.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
8
>>


REPORT: 64 bit

REPORT: Detecting byte order:

REPORT: little-endian

REPORT: Checking for variable-length array support:

COMPILE /tmp/tmpIjeL6h.cpp:
---

int main(int argc, char* argv[]) {
  int x[argc];
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpIjeL6h.cpp -o /tmp/tmpIjeL6h.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpIjeL6h.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok

REPORT: Checking for non-POD variable-length array support:

COMPILE /tmp/tmpdftVVl.cpp:
---

#include <string>

class X {
  int x;
  double y;
  std::string s;
};

int main(int argc, char* argv[]) {
  X x[argc];
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpdftVVl.cpp -o /tmp/tmpdftVVl.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpdftVVl.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok

REPORT: Checking for ::max_align_t:

COMPILE /tmp/tmpZIYdIN.cpp:
---

#include <iostream>
#include <cstddef>
using ::max_align_t;
int main() {
  std::cout << alignof (max_align_t) << " bytes\n";
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpZIYdIN.cpp -o /tmp/tmpZIYdIN.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpZIYdIN.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
16 bytes
>>


REPORT: 16 bytes

REPORT: Checking for std::max_align_t:

COMPILE /tmp/tmpQU6zKk.cpp:
---

#include <iostream>
#include <cstddef>
using std::max_align_t;
int main() {
  std::cout << alignof (max_align_t) << " bytes\n";
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpQU6zKk.cpp -o /tmp/tmpQU6zKk.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpQU6zKk.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
16 bytes
>>


REPORT: 16 bytes
EXEC <<
CMD: pkg-config --cflags eigen3
EXIT: 0
STDOUT:
-I/usr/include/eigen3
>>


REPORT: Checking for Eigen3 library:

COMPILE /tmp/tmpBCwctk.cpp:
---

#include <cstddef>
#include <Eigen/Core>
#include <iostream>

int main (int argc, char* argv[]) {
  std::cout << EIGEN_WORLD_VERSION << "." << EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION << "\n";
  return 0;
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -idirafter /usr/include/eigen3 /tmp/tmpBCwctk.cpp -o /tmp/tmpBCwctk.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpBCwctk.o -Wl,--sort-common,--as-needed -pthread -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
3.3.4
>>


REPORT: 3.3.4
EXEC <<
CMD: pkg-config --cflags zlib
EXIT: 0
>>

EXEC <<
CMD: pkg-config --libs zlib
EXIT: 0
STDOUT:
-lz
>>


REPORT: Checking for zlib compression library:

COMPILE /tmp/tmpCJWukV.cpp:
---

#include <iostream>
#include <zlib.h>

int main() {
  std::cout << zlibVersion();
  return (0);
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 /tmp/tmpCJWukV.cpp -o /tmp/tmpCJWukV.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpCJWukV.o -Wl,--sort-common,--as-needed -pthread -lz -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
1.2.11
>>


REPORT: 1.2.11

REPORT: Checking for "JSON for Modern C++" requirements:

COMPILE /tmp/tmpNfFcko.cpp:
---

#include "file/json.h"
int main (int argc, char* argv[])
{
  nlohmann::json json;
  json["key"] = "value";
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -I/home/finn/Software/mrtrix3/core /tmp/tmpNfFcko.cpp -o /tmp/tmpNfFcko.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpNfFcko.o -Wl,--sort-common,--as-needed -pthread -lz -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
>>


REPORT: ok
EXEC <<
CMD: pkg-config --cflags libtiff-4
EXIT: 0
STDOUT:
-I/usr/include/x86_64-linux-gnu
>>

EXEC <<
CMD: pkg-config --libs libtiff-4
EXIT: 0
STDOUT:
-ltiff
>>


REPORT: Checking for TIFF library:

COMPILE /tmp/tmpwUxj6u.cpp:
---

#include <iostream>
#include <tiffio.h>

int main() {
  std::cout << TIFFGetVersion();
  return (0);
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -idirafter /usr/include/x86_64-linux-gnu /tmp/tmpwUxj6u.cpp -o /tmp/tmpwUxj6u.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpwUxj6u.o -Wl,--sort-common,--as-needed -pthread -lz -ltiff -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
LIBTIFF, Version 4.0.9
Copyright (c) 1988-1996 Sam Leffler
Copyright (c) 1991-1996 Silicon Graphics, Inc.
>>


REPORT: LIBTIFF, Version 4.0.9
EXEC <<
CMD: pkg-config --cflags fftw3
EXIT: 0
>>

EXEC <<
CMD: pkg-config --libs fftw3
EXIT: 0
STDOUT:
-lfftw3
>>


REPORT: Checking for FFTW library:

COMPILE /tmp/tmpnXXy43.cpp:
---

#include <iostream>
#include <fftw3.h>

int main() {
  std::cout << fftw_version << "\n";
  return (0);
}

---
EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_TIFF_SUPPORT -idirafter /usr/include/x86_64-linux-gnu /tmp/tmpnXXy43.cpp -o /tmp/tmpnXXy43.o
EXIT: 0
>>

EXEC <<
CMD: g++ /tmp/tmpnXXy43.o -Wl,--sort-common,--as-needed -pthread -lz -ltiff -lfftw3 -o a.out
EXIT: 0
>>

EXEC <<
CMD: ./a.out
EXIT: 0
STDOUT:
fftw-3.3.7-sse2-avx
>>


REPORT: fftw-3.3.7-sse2-avx

REPORT: Checking for Qt moc:
EXEC <<
CMD: moc -v
EXIT: 1
STDERR:
Qt Meta Object Compiler version 63 (Qt 4.8.7)
>>


REPORT: moc (version 4.8.7)

REPORT: Checking for Qt qmake:
EXEC <<
CMD: qmake -v
EXIT: 0
STDOUT:
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu
>>


REPORT: qmake (version 4.8.7)

REPORT: Checking for Qt rcc:
EXEC <<
CMD: rcc -v
EXIT: 1
STDERR:
Qt Resource Compiler version 4.8.7
>>


REPORT: rcc (version 4.8.7)

REPORT: Checking for Qt:

source file "qt.h":
---
#include <QObject>

class Foo: public QObject {
  Q_OBJECT;
  public:
    Foo();
    ~Foo();
  public slots:
    void setValue(int value);
  signals:
    void valueChanged (int newValue);
  private:
    int value_;
};
---

source file "qt.cpp":
---
#include <iostream>
#include "qt.h"

Foo::Foo() : value_ (42) { connect (this, SIGNAL(valueChanged(int)), this, SLOT(setValue(int))); }

Foo::~Foo() { std::cout << qVersion() << "\n"; }

void Foo::setValue (int value) { value_ = value; }

int main() { Foo f; }
---

project file "qt.pro":
---
CONFIG += c++11
QT += core gui opengl svg
HEADERS += qt.h
SOURCES += qt.cpp
---
EXEC <<
CMD: qmake
EXIT: 0
>>

EXEC <<
CMD: moc qt.h -o qt_moc.cpp
EXIT: 0
>>

EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_TIFF_SUPPORT -idirafter /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -m64 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -idirafter /usr/share/qt4/mkspecs/linux-g++-64 -idirafter /usr/include/qt4/QtCore -idirafter /usr/include/qt4/QtGui -idirafter /usr/include/qt4/QtOpenGL -idirafter /usr/include/qt4/QtSvg -idirafter /usr/include/qt4 -idirafter /usr/X11R6/include qt.cpp -o qt.o
EXIT: 0
>>

EXEC <<
CMD: g++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -DMRTRIX_TIFF_SUPPORT -idirafter /usr/include/x86_64-linux-gnu -DEIGEN_FFTW_DEFAULT -m64 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -idirafter /usr/share/qt4/mkspecs/linux-g++-64 -idirafter /usr/include/qt4/QtCore -idirafter /usr/include/qt4/QtGui -idirafter /usr/include/qt4/QtOpenGL -idirafter /usr/include/qt4/QtSvg -idirafter /usr/include/qt4 -idirafter /usr/X11R6/include qt_moc.cpp -o qt_moc.o
EXIT: 0
>>

EXEC <<
CMD: g++ -Wl,--sort-common,--as-needed -pthread -lz -ltiff -lfftw3 qt_moc.o qt.o -o qt -m64 -Wl,-O1 -L/usr/lib/x86_64-linux-gnu -L/usr/X11R6/lib64 -lQtSvg -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread
EXIT: 1
STDERR:
/usr/bin/x86_64-linux-gnu-ld: cannot find -lGL
collect2: error: ld returned 1 exit status
>>


ERROR: error linking Qt application!

  See the file 'configure.log' for details. If this doesn't help and you need
  further assistance, please post on the MRtrix3 community forum
  (http://community.mrtrix.org/), and make sure to include the full contents of
  the 'configure.log' file.

Help appreciated. Thanks in advance!
Finn