MRtrix3 / mrtrix3

MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
http://www.mrtrix.org
Mozilla Public License 2.0
293 stars 180 forks source link

Error during build with the last version - master #75

Closed arnaudbore closed 10 years ago

arnaudbore commented 10 years ago

Today I've done a pull of the mrtrix3 repository. When I do ./build I've got this error:

ERROR: [CC] src/gui/mrview/mode/volume.o

g++ -c -fPIC -march=native -DMRTRIX_WORD64 -DMRTRIX_USE_TR1 -Wall -Wno-unused-function -Wno-unused-parameter -O2 -DNDEBUG -Isrc -Icmd -Ilib -Icmd -I/usr/include -DHAVE_INLINE -m64 -pipe -O2 -D_REENTRANT -Wall -W -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I/usr/X11R6/include src/gui/mrview/mode/volume.cpp -o src/gui/mrview/mode/volume.o

failed with output

In file included from src/gui/mrview/mode/base.h:28:0, from src/gui/mrview/mode/volume.h:27, from src/gui/mrview/mode/volume.cpp:25: src/gui/projection.h: In member function void MR::GUI::Projection::set_viewport(const QWidget&) const: src/gui/projection.h:38:25: error: const class QWidget has no member named windowHandle

ERROR: [CC] src/gui/mrview/tool/fixel.o

g++ -c -fPIC -march=native -DMRTRIX_WORD64 -DMRTRIX_USE_TR1 -Wall -Wno-unused-function -Wno-unused-parameter -O2 -DNDEBUG -Isrc -Icmd -Ilib -Icmd -I/usr/include -DHAVE_INLINE -m64 -pipe -O2 -D_REENTRANT -Wall -W -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I/usr/X11R6/include src/gui/mrview/tool/fixel.cpp -o src/gui/mrview/tool/fixel.o

failed with output

In file included from src/gui/mrview/tool/base.h:27:0, from src/gui/mrview/tool/vector.h:26, from src/gui/mrview/tool/fixel.h:31, from src/gui/mrview/tool/fixel.cpp:23: src/gui/projection.h: In member function void MR::GUI::Projection::set_viewport(const QWidget&) const: src/gui/projection.h:38:25: error: const class QWidget has no member named windowHandle

I didn't have this error with the previous version.

Thank you in advance for your help

jdtournier commented 10 years ago

Just checked out the issue again - I have no issues building this on my Arch Linux desktop running Qt 5.3.1. I'm guessing this'll be related to the order of include files somehow being different on the different systems. I'll try to do a full ./build clean && ./configure && ./build to figure it out...

arnaudbore commented 10 years ago

I still have this issue. Here is my configuration:

MRtrix build type requested: release Checking C++ compiler [g++]: 4.6 - tested ok Detecting OS: linux Detecting pointer size: 64 bit Detecting byte order: little-endian Checking for unordered_map: no Checking for TR1 unordered_map: present Checking for 64-bit integer type: yes Checking for variable-length array support: yes Checking for non-POD variable-length array support: yes Checking for zlib compression library: 1.2.3.4 Checking for POSIX threads: yes Checking for GNU Scientific Library: 1.15 Checking whether GSL compiles with -DHAVE_INLINE: yes Checking shared library generation: yes Checking for Qt moc: moc (version 4.8.1) Checking for Qt qmake: qmake (version 4.8.1) Checking for Qt rcc: rcc (version 4.8.1) Checking for Qt: 4.8.1 Checking for OpenGL: 3.3.0 NVIDIA 331.20

Maybe should I upgrade my qt version ?

jdtournier commented 10 years ago

OK, I'm not getting any issues on a clean reconfigure & rebuild. Not sure why that would be the case, but if those having issues can try inserting a #include <QWidget> somewhere after the other #include lines in src/gui/projection.h, we might find that's enough to sort this out...

jdtournier commented 10 years ago

@arnaudbore : it's probably not your Qt version - this issue has been reported by Rob too (see comment on commit 10ef287) using the exact same version of everything as me...

arnaudbore commented 10 years ago

Didn't work for me. I'm going to test some include to see if it can help.

jdtournier commented 10 years ago

OK, just found out the methods I was using to support HiDPI rendering were introduced in Qt5.1... This won't work in Qt4. I'll push out a commit to disable that for previous versions of Qt.

@Lestropie : no idea why this wouldn't work on your Qt 5.3 system - works fine for me. Are you sure your system is set up to use the Qt5 framework, not Qt4.8...?

Lestropie commented 10 years ago

Yep, my laptop was compiling with 4. Now recall having had configure script issues on Arch with 5 at some stage, must have fallen back then, seems to be OK now.

Having said that, my first configure call claimed no OpenGL, then the second call worked fine. Go figure.

arnaudbore commented 10 years ago

Thank you Donald it works for me.