Qt 5.7 and cross compile
-
@shivaVMC said in Qt 5.7 and cross compile:
git clone git://code.qt.io/qt/qtbase.git -b linux-rasp-pi3-g++
You need to specify what Qt branch (i.e. 5.7, ..., 5.10, etc.) you want to clone from Git repository, let's say you want to cross-compile Qt 5.10:
git clone git://code.qt.io/qt/qtbase.git -b 5.10
then you'll have a folder qtbase will all the sources to build Qt 5.10
@Pablo-J.-Rogina
HI Again
I m using 2 different version of QT as
my PC installed with QT5.7.0
My Rpi3 Kit installed with QT5.10.1
Now I compiled the code and it went well in my PC,Same ".exe" I run in rpi3kit it gave me an error as below"cannot execute binary file: Exec format error
Application finished with exit code 126."Please can you suggest on this.
Where I m going wrong?Is I need to install QT5.10.1 on my PC also?
-
@Pablo-J.-Rogina
HI Again
I m using 2 different version of QT as
my PC installed with QT5.7.0
My Rpi3 Kit installed with QT5.10.1
Now I compiled the code and it went well in my PC,Same ".exe" I run in rpi3kit it gave me an error as below"cannot execute binary file: Exec format error
Application finished with exit code 126."Please can you suggest on this.
Where I m going wrong?Is I need to install QT5.10.1 on my PC also?
@shivaVMC said in Qt 5.7 and cross compile:
Where I m going wrong?
You are mixing pears and apples :-)
Different Qt versions is not the issue here, the problem is different platform/architecture: your PC is x86 (I assume) while RPi is ARM
Remember that whatever Qt version you use in your RPi you would need to cross-compile in your PC
-
@shivaVMC said in Qt 5.7 and cross compile:
Where I m going wrong?
You are mixing pears and apples :-)
Different Qt versions is not the issue here, the problem is different platform/architecture: your PC is x86 (I assume) while RPi is ARM
Remember that whatever Qt version you use in your RPi you would need to cross-compile in your PC
@Pablo-J.-Rogina
Hi Rogina,
Finally I m successful in compiling the code and running on my target Board,Thanks alot .But during runtime,I m facing with below error as
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
Can you plesae help on this. -
@shivaVMC said in Qt 5.7 and cross compile:
Unable to query physical screen size, defaulting to 100 dpi.
This is not an error, you can safely ignore it.
And if you want to solve it, just do what the next line says (export the 2 variables before launching your app).
QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.Here the error message mentions the solution, too. Just do what it says :-) Either put some fonts in the path where Qt is looking for them, or ship your own in a resource (QRC) with your app and install them at runtime.
-
@shivaVMC said in Qt 5.7 and cross compile:
Unable to query physical screen size, defaulting to 100 dpi.
This is not an error, you can safely ignore it.
And if you want to solve it, just do what the next line says (export the 2 variables before launching your app).
QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.Here the error message mentions the solution, too. Just do what it says :-) Either put some fonts in the path where Qt is looking for them, or ship your own in a resource (QRC) with your app and install them at runtime.
-
@sierdzio
Excellent Site...!!!
The above suggestion worked out for me.
Now,I m poting my Windows based developed Qt application to Linux,can you please suggest the best procedure to follow for quick porting.
Thanks In advance.@shivaVMC said in Qt 5.7 and cross compile:
Now,I m poting my Windows based developed Qt application to Linux,can you please suggest the best procedure to follow for quick porting.
That's worthy of a new thread. If you encounter any issues during porting, feel free to open a new topic and we'll try to help.
In general, if your app only uses Qt APIs, then in most cases there is nothing to port. You need to compile your app and Linux and it will just work. If you do use some OS-specific APIs then each such case is different and it's impossible to give general advice on this.
If you need to distribute your Linux app, take a look into linuxdeployqt, it's excellent for producing ready-to-run packages - and in case of issues the guy who wrote it is really helpful. AppImage output is built-in, and if you want to produce DEB and RPM packages, you can reuse linuxdeployqt's output using fpm. More info on how to do it: https://github.com/probonopd/linuxdeployqt/issues/9
-
@shivaVMC said in Qt 5.7 and cross compile:
Now,I m poting my Windows based developed Qt application to Linux,can you please suggest the best procedure to follow for quick porting.
That's worthy of a new thread. If you encounter any issues during porting, feel free to open a new topic and we'll try to help.
In general, if your app only uses Qt APIs, then in most cases there is nothing to port. You need to compile your app and Linux and it will just work. If you do use some OS-specific APIs then each such case is different and it's impossible to give general advice on this.
If you need to distribute your Linux app, take a look into linuxdeployqt, it's excellent for producing ready-to-run packages - and in case of issues the guy who wrote it is really helpful. AppImage output is built-in, and if you want to produce DEB and RPM packages, you can reuse linuxdeployqt's output using fpm. More info on how to do it: https://github.com/probonopd/linuxdeployqt/issues/9
@sierdzio
Hi sierdzio,
I have compiled the Windows Qt code,but I m facing issue as below.
test.cpp:(.text+0x3b8): undefined reference toQwtScaleMap::setScaleInterval(double, double)' test.cpp:(.text+0x3c8): undefined reference to
QwtScaleMap::setScaleInterval(double, double)'
test.cpp:(.text+0x3e0): undefined reference toQwtScaleMap::setScaleInterval(double, double)' test.o: In function
test::test(QWidget*)':
test.cpp:(.text+0x494): undefined reference toQwtScaleMap::QwtScaleMap()' test.cpp:(.text+0x4a0): undefined reference to
QwtScaleMap::QwtScaleMap()'
test.cpp:(.text+0x4c0): undefined reference toQwtPlotCurve::QwtPlotCurve(QString const&)' test.cpp:(.text+0x554): undefined reference to
QwtSymbol::QwtSymbol(QwtSymbol::Style, QBrush const&, QPen const&, QSize const&)'
test.cpp:(.text+0x560): undefined reference toQwtPlotCurve::setSymbol(QwtSymbol*)' test.cpp:(.text+0x590): undefined reference to
QwtPlotCurve::setPen(QColor const&, double, Qt::PenStyle)'
test.cpp:(.text+0x59c): undefined reference toQwtPlotCurve::setStyle(QwtPlotCurve::CurveStyle)' test.cpp:(.text+0x610): undefined reference to
QwtScaleMap::~QwtScaleMap()'
test.cpp:(.text+0x618): undefined reference toQwtScaleMap::~QwtScaleMap()' test.cpp:(.text+0x64c): undefined reference to
QwtPlotCurve::~QwtPlotCurve()'Exactly which library I need to add to avoid these error's.
Please can I get suggestion/support on this?
Thanks In addvance
-
You need the Qwt library.
But since it's not usually available on Windows, I suspect you already do have Qwt in your sources.
-
You need the Qwt library.
But since it's not usually available on Windows, I suspect you already do have Qwt in your sources.
@sierdzio
Yeah I do have Qwt in my src directory.
src/qwt_scale_map.h
src/qwt_global.h
src/qwt_transform.h
src/qwt_plot_curve.h
src/qwt_plot_seriesitem.h
src/qwt_plot_item.h
src/qwt_text.h
src/qwt_legend_data.h
src/qwt_graphic.h
src/qwt_null_paintdevice.h \But still I m getting the undefined reference type of error's(As mentioned above). What could be the reason for this.
-
@sierdzio
Yeah I do have Qwt in my src directory.
src/qwt_scale_map.h
src/qwt_global.h
src/qwt_transform.h
src/qwt_plot_curve.h
src/qwt_plot_seriesitem.h
src/qwt_plot_item.h
src/qwt_text.h
src/qwt_legend_data.h
src/qwt_graphic.h
src/qwt_null_paintdevice.h \But still I m getting the undefined reference type of error's(As mentioned above). What could be the reason for this.
@shivaVMC said in Qt 5.7 and cross compile:
But still I m getting the undefined reference type of error's(As mentioned above). What could be the reason for this
- symbols are really missing (check the sources).
- you don't
#include
relevant headers
-
@shivaVMC said in Qt 5.7 and cross compile:
But still I m getting the undefined reference type of error's(As mentioned above). What could be the reason for this
- symbols are really missing (check the sources).
- you don't
#include
relevant headers
@shivaVMC you were already told:
That's worthy of a new thread.
so could you please start a thread on its own regarding Qwt and Windows?
The issue you're now interested about has nothing to do with the original subject of post (which it was not even started by you by the way). Thanks
-
@shivaVMC said in Qt 5.7 and cross compile:
But still I m getting the undefined reference type of error's(As mentioned above). What could be the reason for this
- symbols are really missing (check the sources).
- you don't
#include
relevant headers