Building gnuradio's gr-qtgui with qt 4.6

Hi,

I’m trying to build gnuradio 3.2.2 under openSUSE 11.2, 32bit. I’ve
installed the latest KDE4 release, so this packages are installed:
ich@heusinger:~/local/src/gnuradio-3.2.2> rpm -qa | grep libqt4
libqt4-qt3support-4.6.2-3.1.i586
libqt4-devel-doc-data-4.6.2-5.1.noarch
libqt4-devel-doc-4.6.2-5.1.i586
libqt4-sql-mysql-4.6.2-5.1.i586
libqt4-sql-sqlite-4.6.2-3.1.i586
libqt4-4.6.2-3.1.i586
libqt4-sql-4.6.2-3.1.i586
libqt4-x11-4.6.2-3.1.i586
libqt4-devel-4.6.2-3.1.i586

The make process exists with the errors appended to this mail. I hope
this report is useful for somebody. For now, I’m building with
–disable-gr-qtgui.

Regards,
Gregor

libtool: compile: g++ -DHAVE_CONFIG_H -I. -I…/…/…
-DOMNITHREAD_POSIX=1 -I/usr/include
-I/home/ich/local/src/gnuradio-3.2.2/omnithread
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/runtime
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/general
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/general
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/gengen
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/gengen
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/filter
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/filter
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/missing
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/reed-solomon
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/viterbi
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/io
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/g72x
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/swig
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/hier
-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/swig
-I/home/ich/local/src/gnuradio-3.2.2/gruel/src/include
-I/home/ich/local/src/gnuradio-3.2.2/gruel/src/include
-I/usr/include/python2.6 -I/usr/include/qwt -I/usr/include/qwtplot3d
-DQT_SHARED -I/usr/include/QtCore -DQT_SHARED -I/usr/include/QtGui
-I/usr/include/QtCore -I. -g -O2 -Wall -Woverloaded-virtual -pthread
-MT FrequencyDisplayPlot_moc.lo -MD -MP -MF
.deps/FrequencyDisplayPlot_moc.Tpo -c FrequencyDisplayPlot_moc.cc
-fPIC -DPIC -o .libs/FrequencyDisplayPlot_moc.o
TimeDomainDisplayPlot_moc.cc:14:2: error: #error “This file was
generated using the moc from 4.5.0. It”
TimeDomainDisplayPlot_moc.cc:15:2: error: #error “cannot be used with
the include files from this version of Qt.”
TimeDomainDisplayPlot_moc.cc:16:2: error: #error “(The moc has changed
too much.)”
FrequencyDisplayPlot_moc.cc:14:2: error: #error “This file was
generated using the moc from 4.5.0. It”
FrequencyDisplayPlot_moc.cc:15:2: error: #error “cannot be used with
the include files from this version of Qt.”
FrequencyDisplayPlot_moc.cc:16:2: error: #error “(The moc has changed
too much.)”
spectrumdisplayform_moc.cc:14:2: error: #error “This file was
generated using the moc from 4.5.0. It”
spectrumdisplayform_moc.cc:15:2: error: #error “cannot be used with
the include files from this version of Qt.”
spectrumdisplayform_moc.cc:16:2: error: #error “(The moc has changed too
much.)”
In file included from TimeDomainDisplayPlot.h:11,
from TimeDomainDisplayPlot_moc.cc:10:
/usr/include/qwt/qwt_plot_picker.h:106: warning: ‘virtual void
QwtPlotPicker::move(const QPoint&)’ was hidden
/usr/include/qwt/qwt_plot_zoomer.h:88: warning: by ‘virtual void
QwtPlotZoomer::move(double, double)’
make[5]: *** [TimeDomainDisplayPlot_moc.lo] Fehler 1
make[5]: *** Warte auf noch nicht beendete Prozesse…
In file included from FrequencyDisplayPlot.h:11,
from FrequencyDisplayPlot_moc.cc:10:
/usr/include/qwt/qwt_plot_picker.h:106: warning: ‘virtual void
QwtPlotPicker::move(const QPoint&)’ was hidden
/usr/include/qwt/qwt_plot_zoomer.h:88: warning: by ‘virtual void
QwtPlotZoomer::move(double, double)’
make[5]: *** [FrequencyDisplayPlot_moc.lo] Fehler 1
In file included from ./FrequencyDisplayPlot.h:11,
from spectrumdisplayform_ui.h:13,
from spectrumdisplayform.h:4,
from spectrumdisplayform_moc.cc:10:
/usr/include/qwt/qwt_plot_picker.h:106: warning: ‘virtual void
QwtPlotPicker::move(const QPoint&)’ was hidden
/usr/include/qwt/qwt_plot_zoomer.h:88: warning: by ‘virtual void
QwtPlotZoomer::move(double, double)’
In file included from ./Waterfall3DDisplayPlot.h:7,
from spectrumdisplayform_ui.h:30,
from spectrumdisplayform.h:4,
from spectrumdisplayform_moc.cc:10:
/usr/include/qwtplot3d/qwt3d_function.h:30: warning: ‘virtual bool
Qwt3D::Function::create(Qwt3D::SurfacePlot&)’ was hidden
./waterfallGlobalData.h:56: warning: by ‘virtual bool
Waterfall3DData::create()’
In file included from /usr/include/qwtplot3d/qwt3d_colorlegend.h:7,
from /usr/include/qwtplot3d/qwt3d_coordsys.h:5,
from /usr/include/qwtplot3d/qwt3d_plot.h:4,
from /usr/include/qwtplot3d/qwt3d_surfaceplot.h:4,
from ./Waterfall3DDisplayPlot.h:8,
from spectrumdisplayform_ui.h:30,
from spectrumdisplayform.h:4,
from spectrumdisplayform_moc.cc:10:
/usr/include/qwtplot3d/qwt3d_color.h:22: warning: ‘virtual Qwt3D::RGBA
Qwt3D::Color::operator()(const Qwt3D::Triple&) const’ was hidden
/usr/include/qwtplot3d/qwt3d_color.h:44: warning: by ‘virtual
Qwt3D::RGBA Qwt3D::StandardColor::operator()(double, double, double)
const’
In file included from spectrumdisplayform_ui.h:30,
from spectrumdisplayform.h:4,
from spectrumdisplayform_moc.cc:10:
/usr/include/qwtplot3d/qwt3d_color.h:22: warning: ‘virtual Qwt3D::RGBA
Qwt3D::Color::operator()(const Qwt3D::Triple&) const’ was hidden
./Waterfall3DDisplayPlot.h:18: warning: by ‘virtual Qwt3D::RGBA
Waterfall3DColorMap::operator()(double, double, double) const’
make[5]: *** [spectrumdisplayform_moc.lo] Fehler 1
make[5]: Leaving directory
/home/ich/local/src/gnuradio-3.2.2/gr-qtgui/src/lib' make[4]: *** [all] Fehler 2 make[4]: Leaving directory/home/ich/local/src/gnuradio-3.2.2/gr-qtgui/src/lib’
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory
/home/ich/local/src/gnuradio-3.2.2/gr-qtgui/src' make[2]: *** [all-recursive] Fehler 1 make[2]: Leaving directory/home/ich/local/src/gnuradio-3.2.2/gr-qtgui’
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/ich/local/src/gnuradio-3.2.2’
make: *** [all] Fehler 2

On Mon, Mar 22, 2010 at 12:44:52AM +0100, Gregor D. wrote:

libqt4-4.6.2-3.1.i586
libqt4-sql-4.6.2-3.1.i586
libqt4-x11-4.6.2-3.1.i586
libqt4-devel-4.6.2-3.1.i586

The make process exists with the errors appended to this mail. I hope
this report is useful for somebody. For now, I’m building with
–disable-gr-qtgui.

Regards,
Gregor

Try:

make clean
./bootstrap
./configure
make && make check
sudo make install

Eric

-I/home/ich/local/src/gnuradio-3.2.2/gnuradio-core/src/lib/missing
-DQT_SHARED -I/usr/include/QtCore -DQT_SHARED -I/usr/include/QtGui
-I/usr/include/QtCore -I. -g -O2 -Wall -Woverloaded-virtual -pthread
-MT FrequencyDisplayPlot_moc.lo -MD -MP -MF
.deps/FrequencyDisplayPlot_moc.Tpo -c FrequencyDisplayPlot_moc.cc
-fPIC -DPIC -o .libs/FrequencyDisplayPlot_moc.o
TimeDomainDisplayPlot_moc.cc:14:2: error: #error “This file was
generated using the moc from 4.5.0. It”
TimeDomainDisplayPlot_moc.cc:15:2: error: #error “cannot be used with
the include files from this version of Qt.”
TimeDomainDisplayPlot_moc.cc:16:2: error: #error “(The moc has changed
too much.)”

[snip]

make clean
./bootstrap
./configure
make && make check
sudo make install

Eric

At first that wasn’t successful. Then I’ve taken a deeper look into
the make process:
gr-qtgui/src/lib/Makefile.am
[…]
if BUILD_QT
%_moc.cc : %.h
$(QT_MOC_EXEC) -DQT_SHARED -DQT_NO_DEBUG -DQT_OPENGL_LIB
-DQT_GUI_LIB -DQT_CORE_LIB $< -o $@

%_ui.h : %.ui
$(QT_UIC_EXEC) $< -o $@
else
%_moc.cc : %.h
touch $@

%_ui.h : %.ui
touch $@
endif
[…]

So BUILD_QT needs to be true, which is set in config/grc_gr_qtgui.m4
if “[PyQt4.QtCore.PYQT_VERSION >= 260000]”.
-> I needed to install python-qt4-devel. After that, everything compiles
fine.

I suggest to have python-qt4-devel as an obligational dependency for
gr-qtgui, so that—if that package is missing—the ./configure step
won’t mark gr-qtgui as build-able. Also, if the moc-files hadn’t be
included in the tar-ball, they would have been needed to build.

Regards,
Gregor

On Tue, Mar 23, 2010 at 6:44 PM, Gregor D. [email protected]
wrote:

At first that wasn’t successful. Then I’ve taken a deeper look into
else
→ I needed to install python-qt4-devel. After that, everything compiles fine.

I suggest to have python-qt4-devel as an obligational dependency for
gr-qtgui, so that—if that package is missing—the ./configure step
won’t mark gr-qtgui as build-able. Also, if the moc-files hadn’t be
included in the tar-ball, they would have been needed to build.

Regards,
Gregor

Yes, you’re right, this should be an explicit requirement. I thought
it was, but it slipped through the cracks. I’ll put it on my todo
list.

Tom