Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Cross compilation and "Qt5 Super Module" : Unknown Module: location on build
I want to cross-compile for Raspberrypi 3 using the same Qt version as raspbian (5.3.x) so I do not use "sysroot".
I tried to use Qt Git qtbase (branch 5.3) and various modules (quick1, location, declarative, etc. on 5.3 branch) but got no success so I tried the "Super Module" repository which have all modules in submodules and nothing better.
What I have done to build is:
mkdir raspi && cd raspi git clone of the qt5 latest git repos git clone -b 5.3 http://code.qt.io/qt/qt5.git qt5_sm cd qt5_sm cp -r ../latest-qt5-git-repos/mkspecs/devices/linux-rpi3-* qtbase/mkspecs/devices/ ./init-repository -f module-subset=qtbase,qtconnectivity,qtdeclarative,qtimageformats,qtlocation,qtmultimedia,qtquick1,qtquickcontrols,qtscript,qtsensors,qtserialport,qtsvg,qttranslations,qtxmlpatterns ./configure -opengl no -device linux-rpi3-g++ -device-option CROSS_COMPILE=/home/dashie/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf- -opensource -confirm-license -make libs -alsa -widgets -qpa linuxfb -developer-build make
In Qt Creator the kit is ok (using qmake at ~/raspi/qt5_sm/qtbase/bin/qmake) and I can build without issues but I still got
Project ERROR: Unknown module(s) in QT: locationif I want to use QtLocation.
- I do not plan/want to use EGLFS or GL or X so I use linuxfb
- no sysroot because I do not plan to use another Qt version (for the moment if I can stick with this one)
- -developer-build permit to use in-source without make install (so no extprefix or prefix here)
- I use the latest linux-rpi3-* mkspecs to have the correct flags/things for the Pi3 since theses files aren't included in 5.3 (only up to rpi2 it seems)
Any ideas what I have missed in the build steps or to have Qt Location enabled ?
I planned to use Qt Quick/QML too but same issue as QtLocation (can't find some headers etc.).
Might be a silly question but did you check that your clone does indeed have QtLocation properly checked out ?
A side note, developer-build are meant for people hacking on Qt not using it. If you want an "in-place" build you should use the prefix option for that.
@SGaist yes the module is properly checked out (ls list his content)
about developer-build yes that's why I have understand, I will retry with prefix and see if it changes anything
I have finished rebuild using
-release -prefix ~/raspi/qt5_sm_prefixinstead of
-developper-buildand unfortunately still the same issue with QtLocation not found.
Did you check that the module was built and installed ? If not, then you can do it by hand.
@SGaist I don't really know how to check. Some qt*/ have a config.log with failed tests or not (should be ok then, it will just skip some parts like GL or optional dependencies for QtLocation)
I already used the method of building them by hand (before trying the Super Module) and it install somes files but not all it seems, at least not what should be sufficient to be used.
When building by hand I used the qmake on
$prefix-used-in-configure-for-qtbase/bin/qmakeso it use the right Qt5 kit paths.
The Super Module should build them etc. but I have not found much informations about that other that "just use init-repository, configure, make, make install and that's all".
I'll check the content of the lib folder to see if there's anything missing there, then I'd check the qtlocation build dir,
Interestingly QtLocation, noted everywhere as
QT += locationis only available using
Now the other issue is that quickcontrol doesn't seems to find
Quickeven if I do
cd qtquick1 && make install.
I just realised, if you disable OpenGL there are likely things that are going to be disabled.
Oh you may be right, QtQuick1 doesn't seems to require OpenGL but QtQuick2 however needs it.
I guess I will needs to do the "sysroot" way then.