Unsolved Qwt from Windows to Linux Porting
-
Hi Team/@sierdzio,
Can I get suggestion on missing symbols for Qwt source for below type of error's
est.cpp:(.text+0x3b8): undefined reference to QwtScaleMap::setScaleInterval(double, double)' test.cpp:(.text+0x3c8): undefined reference toQwtScaleMap::setScaleInterval(double, double)'
test.cpp:(.text+0x3e0): undefined reference to QwtScaleMap::setScaleInterval(double, double)' test.o: In functiontest::test(QWidget*)':
test.cpp:(.text+0x494): undefined reference to QwtScaleMap::QwtScaleMap()' test.cpp:(.text+0x4a0): undefined reference toQwtScaleMap::QwtScaleMap()'
test.cpp:(.text+0x4c0): undefined reference to QwtPlotCurve::QwtPlotCurve(QString const&)' test.cpp:(.text+0x554): undefined reference toQwtSymbol::QwtSymbol(QwtSymbol::Style, QBrush const&, QPen const&, QSize const&)'
test.cpp:(.text+0x560): undefined reference to QwtPlotCurve::setSymbol(QwtSymbol*)' test.cpp:(.text+0x590): undefined reference toQwtPlotCurve::setPen(QColor const&, double, Qt::PenStyle)'How to do the linking ?I m totally stuckup on this,no further work going ahead
Kind request to help/suggest on it. -
I have already recommended you what to do:
- check the sources to see if symbols are really missing
- check if you
#include
relevant headers
-
@sierdzio
Hi,
I m following this link.
http://qwt.sourceforge.net/qwtinstall.html#COMPILEANDLINKAPAny best link to have a clear picture for the installation of Qwt.
Helps me alot -
Hi,
Did you build Qwt ?
The procedure is mostly the same with Linux that it is on Windows. -
@SGaist
Hi SGaint
I have build it,but facing with below error,homer/user/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference to `operator delete(void*, unsigned int)@CXXABI_1.3.9'
I m not able to fix it,can you please help me on it
-
ABI mismatch. Your Qt and Qwt were likely compiled on different operating systems. Make sure you compile them on the same machine or at least that both machines have the same C++ library installed.
-
@shivaVMC said in Qwt from Windows to Linux Porting:
I have build it,but facing with below error,
homer/user/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference to `operator delete(void*, unsigned int)@CXXABI_1.3.9'It's look like you're trying to cross-compile it for Raspberry Pi...
Could please state clearly what do you want to do? -
@Pablo-J.-Rogina
Hi,
Actually I have a Windows Qt app,I m porting it for Rpi3 from my Ubuntu PC.
So I m trying to do cross-compilation for it.Simple to say is..I have crossed compiled qtbase examples to Rpi3 and sample examples are tested for now..
Similarly I m tryinig to port my windows Qt app in a same way.. -
Hi
Now I m facing below error,what could be the solution for this
Project ERROR: Unknown module(s) in QT: svg
Makefile:45: recipe for target 'sub-src-make_first-ordered' faile -
@shivaVMC said in Qwt from Windows to Linux Porting:
Similarly I m tryinig to port my windows Qt app in a same way..
Ok, so you already know that you need to cross-compile everything, that is, your application code plus all the supporting libraries it uses (as a good starting point you've already cross-compiled Qt itself and some of its examples)
Now I m facing below error,what could be the solution for this
Project ERROR: Unknown module(s) in QT: svg
Makefile:45: recipe for target 'sub-src-make_first-ordered' faileThis a forum of/for programmers, not about magicians :-)
Seriously, please state clearly what you were trying to achieve when this error arose. That simply desciption is not enough, do you agree?
-
@Pablo-J.-Rogina
Really Sorry for that bad english,
I have compiled qt5.7.1 for rpi in my local PC(i.e., for cross compilation) its working fine and now I m using the same qmake generated in ~/raspi/qt5/bin/ for building qwt in my local linux machine for rpi.As below~/raspi/qt5/bin/qmake -o Makefile qwt.pro
~/Downloads/QWT/qwt-6.1.3$ make
cd src/ && ( test -e Makefile || /home/user/raspi/qt5/bin/qmake /home/user/Downloads/QWT/qwt-6.1.3/src/src.pro -o Makefile ) && make -f Makefile
Project ERROR: Unknown module(s) in QT: svg
Makefile:45: recipe for target 'sub-src-make_first-ordered' failed
make: *** [sub-src-make_first-ordered] Error 3can I know how can I fix this module in qmake
I m using below command for configuring
./configure -release -xkb -svg -fontconfig -openssl -opengl es2 -c++std 11 -device linux-rpi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/pi_raspi/sysroot -opensource -confirm-license -prefix /usr/local/qt5pi -extprefix ~/pi_raspi/qt5pi -hostprefix ~/pi_raspi/qt5 -no-use-gold-linker -v
make -j4
make installany option to set it in above configure command to make qtsvg enable for qmake to build qwt6.1.3
-
Check if QtSvg library is present in your cross-compiled Qt. It should be in
qtdir/lib/libQt5Svg.so
.Check the Makefile your created for Qwt - does it point to right Qt installation? Does it include corect compiler flags etc.
-
@sierdzio
Hi
I dont have QtSvg in qtbase/lib/libQt5Svg.so*Yes its pointing to the correct Qt installation as below
Makefile: qwt.pro ../../../raspi/qt5/mkspecs/devices/linux-rpi3-g++/qmake.conf ../../../raspi/qt5/mkspecs/features/spec_pre.prf
../../../raspi/qt5/mkspecs/common/unix.conf
../../../raspi/qt5/mkspecs/common/linux.conf
../../../raspi/qt5/mkspecs/common/sanitize.conf
to include the qtsvg lib,can I know the fix for it. -
@shivaVMC said in Qwt from Windows to Linux Porting:
I dont have QtSvg in qtbase/lib/libQt5Svg.so*
ok then you have to compile it. If you still have your Qt build directory, go into
qtbuilddir/qtsvg
and runmake && make install
there. -
@sierdzio
Hi,
I have cloned qtsvg module I followed below steps
~/raspi/qt5/bin/qmake -r
make
make install
Then I compiled the qwt-6.1.3 using
~/raspi/qt5/bin/qmake -o Makefile qwt.pro
make
make install
it went fine(no error's relating to svg Module) till last stage, but I came up with new error as belowProject ERROR: Unknown module(s) in QT: designer
Makefile:174: recipe for target 'sub-designer-make_first-ordered' failed
make: *** [sub-designer-make_first-ordered] Error 3I have cloned qttools module and
~/raspi/qt5/bin/qmake -r
make
During make I faced new errors again as below,
/home/user/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libproxy.so.1: undefined reference to `VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
collect2: error: ld returned 1 exit status
Makefile:95: recipe for target 'contextsensitivehelp' failed
make[3]: *** [contextsensitivehelp] Error 1
make[3]: Leaving directory '/home/user/raspi/qttools/examples/help/contextsensitivehelp'
Makefile:42: recipe for target 'sub-contextsensitivehelp-make_first-ordered' failed
make[2]: *** [sub-contextsensitivehelp-make_first-ordered] Error 2So can I know which module I need to clone to avoid this error?
or any other suggestive fix for this type of error -
@shivaVMC said in Qwt from Windows to Linux Porting:
So can I know which module I need to clone to avoid this error?
or any other suggestive fix for this type of errorAll these modules should be build together with your Qt build. When you did your Qt cross-compilation, did you do that on whole Qt source code or only qtbase or something?
-
@sierdzio
I cloned qtbase and followed./configure -release -xkb -svg -fontconfig -openssl -opengl es2 -c++std 11 -device linux-rpi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/pi_raspi/sysroot -opensource -confirm-license -prefix /usr/local/qt5pi -extprefix ~/pi_raspi/qt5pi -hostprefix ~/pi_raspi/qt5 -no-use-gold-linker -v
make -j4
make installSo I did only on qtbase.
Can I know the steps to build all modules together with Qt build?
-
@sierdzio
I followed this https://wiki.qt.io/RaspberryPi2EGLFS#Step_by_step siteAny changes in steps-by-step part of above site,please help me on it
-
@shivaVMC for a full Qt build you should read https://wiki.qt.io/Building_Qt_5_from_Git
its main difference should be the cloning part, configuration should be similar to qtbase alone.
-
Use whole Qt source code, not only qtbase. Qtbase contains only some basic modules like QtNetwork, QtCore etc. No widgets, no qml, etc.
Here's a short script to get you going with full Qt:
export QTVER=5.11.1 wget http://download.qt.io/official_releases/qt/5.11/$QTVER/single/qt-everywhere-src-$QTVER.tar.xz tar -xaf qt-everywhere-src-$QTVER.tar.xz mv qt-everywhere-src-$QTVER $QTVER-src mkdir qtbuild cd qtbuild ../$QTVER-src/configure -device linux-rasp-pi3-g++ -opengl es2 -confirm-license -opensource -release -nomake examples -skip qtwebview -skip qt3d -skip qtquick1 -skip qtwayland -skip qtvirtualkeyboard -skip qtwebchannel -skip qtwebengine -skip qtscript -skip qtscxml -skip qtspeech -skip qtpurchasing -skip qtgamepad -skip qtserialbus -skip qtlocation -no-use-gold-linker -device-option CROSS_COMPILE=/path/toi/your/toolchain- -sysroot /path/to/your/sysroot -prefix /home/pi/$QTVER-cross -extprefix $PWD//../$QTVER-cross -hostprefix $PWD/../$QTVER-build -v