PDA

View Full Version : Cross-compiling Qwt for ARM compile errors



jjcf89
24th October 2011, 20:24
I have a setup and tested cross-compile enviroment using the angstrom gcc compiler.


$qmake --version
QMake version 2.01a
Using Qt version 4.6.3 in /usr/local/angstrom/arm/lib

I grabbed qwt from svn https://qwt.svn.sourceforge.net/svnroot/qwt/branches/qwt-6.0.
Version 6.0.2

After running qmake and make I received the following compile error:


qwt_scale_draw.cpp: In member function ‘int QwtScaleDraw::minLabelDist(const QFont&) const’:
qwt_scale_draw.cpp:236: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi//usr/include/qtopia/QtCore/qglobal.h:1867: note: candidate 1: bool qFuzzyCompare(double, double)
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi//usr/include/qtopia/QtCore/qglobal.h:1872: note: candidate 2: bool qFuzzyCompare(float, float)
make[1]: *** [obj/qwt_scale_draw.o] Error 1


Looking into it, the qFastSin function uses qreal which in ARM is defined as float (http://doc.qt.nokia.com/4.6/qtglobal.html#qreal-typedef). So the qFuzzyCompare is being called with (float, double). Adding the cast
(qreal)0.0 fixes the error.

The next error:


qwt_plot_layout.cpp: In member function ‘void QwtPlotLayout::alignScales(int, QRectF&, QRectF*) const’:
qwt_plot_layout.cpp:878: error: no matching function for call to ‘qMax(qreal, double)’
qwt_plot_layout.cpp:915: error: no matching function for call to ‘qMin(qreal, double)’
qwt_plot_layout.cpp:952: error: no matching function for call to ‘qMin(qreal, double)’
qwt_plot_layout.cpp:989: error: no matching function for call to ‘qMax(qreal, double)’
make[1]: *** [obj/qwt_plot_layout.o] Error 1


QRectF.left()/right() returns a qreal so casting it to a double eliminates this error.

I also ran into errors when it tried compiling MathML but since I don't need it I just commented it out in the qwt.pro file.

Attached is the diff file for what worked for me.

Uwe
26th October 2011, 18:31
Commited to SVN.

Thanks for reporting,

Uwe