Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

error on build for qwt 6.1.6



  • Version: Qt 5.15.2
    OS: Ubuntu 20.04.2
    QWT 6.1.6

    I have been attempting install of QWT with version 6.1.6 (get same problem with 6.1.3)

    Issued qmake with no error on directory.
    On make I get this in the display at beginning of build;

    $ make
    cd src/ && ( test -e Makefile || /usr/local/Qt/6.0.1/gcc_64/bin/qmake -o Makefile /home/david/Downloads/qwt-6.1.6/src/src.pro ) && make -f Makefile
    make[1]: Entering directory '/home/david/Downloads/qwt-6.1.6/src'
    compiling qwt_clipper.cpp
    qwt_clipper.cpp: In member function ‘QVector<QwtInterval> QwtCircleClipper::clipCircle(const QPointF&, double) const’:
    qwt_clipper.cpp:354:9: error: ‘qSort’ was not declared in this scope; did you mean ‘qSqrt’?
    354 | qSort( angles );
    | ^~~~~
    | qSqrt
    make[1]: *** [Makefile:4637: obj/qwt_clipper.o] Error 1
    make[1]: Leaving directory '/home/david/Downloads/qwt-6.1.6/src'
    make: *** [Makefile:50: sub-src-make_first-ordered] Error 2

    I have searched forums for same error and have come up with nothing.
    I followed the installation instructions like so;

    /usr/local/Qt/6.0.1/gcc_64/bin/qmake qwt.pro

    then

    make

    As I mentioned I get the identical error with both qwt versions 6.1.6 and 6.1.3.
    Any pointers or suggestions would be welcome.



  • This particular error may be because qSort is apparently now obsolete. It has been replaced with std::sort
    That said I am still running into errors - I'm now running into this error;

    $ make
    cd src/ && ( test -e Makefile || /usr/local/Qt/6.0.1/gcc_64/bin/qmake -o Makefile /home/david/Downloads/qwt-6.1.3/src/src.pro ) && make -f Makefile
    make[1]: Entering directory '/home/david/Downloads/qwt-6.1.3/src'
    compiling qwt_date.cpp
    qwt_date.cpp: In static member function ‘static int QwtDate::utcOffset(const QDateTime&)’:
    qwt_date.cpp:715:32: error: ‘const class QDateTime’ has no member named ‘utcOffset’
    715 | seconds = dateTime.utcOffset();
    | ^~~~~~~~~
    make[1]: *** [Makefile:4922: obj/qwt_date.o] Error 1
    make[1]: Leaving directory '/home/david/Downloads/qwt-6.1.3/src'
    make: *** [Makefile:50: sub-src-make_first-ordered] Error 2
    david@david-X510UAR:~/Downloads/qwt-6.1.3$

    As before - any suggestions would be helpful - on my own here, trial-and-erroring myself to death.


  • Lifetime Qt Champion

    Hi,

    From this feature request, you should use the 6.2 branch.



  • Ok - thanks for that. So I am now compiling and installing without errors. Next step is to get the qwt widgets to appear in Qt.
    Here is where I stand;
    Compiled and installed Qt into /usr/local/Qt version 5.15.2
    Compiled qwt version (6.2.0) - using /usr/local/Qt/5.15.2/gcc_64/bin/qmake (checked using -v is 5.15.2)
    Installed qwt into /usr/local/qwt-6.2.0-svn

    This is a startup script I am using to get Qt up and running from the shell (so I can get some info)

    QMAKEFEATURES=/usr/local/qwt-6.2.0-svn/features
    QT_PLUGIN_PATH="/usr/local/qwt-6.2.0-svn/plugins:/usr/local/Qt/5.15.2/gcc_64/plugins"
    QTDIR=/home/david/Qt
    export QTDIR
    export QT_PLUGIN_PATH
    export QMAKEFEATURES
    export QT_DEBUG_PLUGINS=1
    /usr/local/Qt/Tools/QtCreator/bin/qtcreator

    I put the plugin at;
    /usr/local/Qt/5.15.2/gcc_64/plugins/designer/libqwt_designer_plugin.so

    Here's something I found on old forums so I also did the following;

    I inserted
    /usr/local/qwt-6.2.0-svn/lib
    into
    /etc/ld.so.conf.d/qwt.conf
    and updated with 'sudo ldconfig'

    When I execute my shell file, I get quite a bit output - sending that through "grep qwt" I get;

    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/platformthemes" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/platforminputcontexts" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/xcbglintegrations" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/sqldrivers" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/iconengines" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/imageformats" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qwt-6.2.0-svn/plugins/bearer" ...

    I feel like I'm close - but still not there -


  • Lifetime Qt Champion

    Qt Creator is not designer. Start the Qt 5.15.2 designer and you'll likely see the Qwt widgets there.



  • OK - so, still closer, but a bug - I got this error;

    Cannot load library /usr/local/Qt/5.15.2/gcc_64/plugins/designer/libqwt_designer_plugin.so: (/usr/local/Qt/5.15.2/gcc_64/plugins/designer/libqwt_designer_plugin.so: undefined symbol: _ZN17QwtDesignerPlugin18PolarPlotInterface12createWidgetEP7QWidget)


  • Lifetime Qt Champion

    What do you get if you run ldd on the plugin ?



  • $ ldd libqwt_designer_plugin.so

    linux-vdso.so.1 (0x00007ffe464c5000)
    libqwt.so.6.2 => /usr/local/qwt-6.2.0-svn/lib/libqwt.so.6.2 (0x00007f25ce791000)
    libQt5Designer.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Designer.so.5 (0x00007f25ce08f000)
    libQt5Widgets.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so.5 (0x00007f25cd82d000)
    libQt5Gui.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Gui.so.5 (0x00007f25ccefc000)
    libQt5Core.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Core.so.5 (0x00007f25cc706000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f25cc510000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f25cc4f3000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f25cc301000)
    libQt5Svg.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Svg.so.5 (0x00007f25cc0aa000)
    libQt5OpenGL.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5OpenGL.so.5 (0x00007f25cbe53000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f25cbd04000)
    libQt5Xml.so.5 => /usr/local/Qt/5.15.2/gcc_64/lib/libQt5Xml.so.5 (0x00007f25cbac6000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f25cbaa1000)
    libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f25cba19000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f25cb9fd000)
    libicui18n.so.56 => /usr/local/Qt/5.15.2/gcc_64/lib/libicui18n.so.56 (0x00007f25cb564000)
    libicuuc.so.56 => /usr/local/Qt/5.15.2/gcc_64/lib/libicuuc.so.56 (0x00007f25cb1ac000)
    libicudata.so.56 => /usr/local/Qt/5.15.2/gcc_64/lib/libicudata.so.56 (0x00007f25c97c7000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f25c97c1000)
    libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f25c97bc000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f25c9693000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f25ce983000)
    libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f25c95db000)
    libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f25c95a5000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f25c9532000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f25c93f5000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f25c93cb000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f25c93c5000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f25c93bb000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f25c93a1000)

  • Lifetime Qt Champion

    You may have to check the plugin code to see if there's something missing.

    By the way, weren't you building with Qt 6 ?



  • @SGaist said in error on build for qwt 6.1.6:

    You may have to check the plugin code to see if there's something missing.

    By the way, weren't you building with Qt 6 ?

    Originally I was - but things take a lot of twists and turns - I was getting errors building with the qmake from Qt6 - but that was with an older version of qwt - I tried several versions of qwt - all had the same compile problem, so I switched to a different version of Qt and have had more progress (so it seems).

    Where exactly is the plugin code ? Are you talking about, for instance my shell script file - or maybe that I have plugin installed in /usr/local/Qt/5.15.2/gcc_64/plugins/designer - not sure if that should be there.

    Oh, wait - you mean qwt. I can check that the configuration files I have been through and have not seen a reason to modify. Any suggestions as to what to look at?


  • Lifetime Qt Champion

    I would check the PolarPlot related stuff since it's from there that problem seems to be.



  • I recompiled qwt 6.2 with no errors. Tried a few different configuration. I removed the plugin file from within Qt.
    Then I retried qwt-6.1.5 again and BINGO - the widgets are up and working. Thank you for your expert guidance on this.


Log in to reply