Please help me compile QT5 on armv7
-
I am trying to natively compile QT5.4.2 on Arm.
I configure like this:
arch@honeybadger qt-everywhere-opensource-src-5.4.2]$ ./configure -confirm-license -opensource -prefix /usr -bindir /usr/lib/qt/bin -docdir /usr/share/doc/qt -headerdir /usr/include/qt -archdatadir /usr/lib/qt -datadir /usr/share/qt -sysconfdir /etc/xdg -examplesdir /usr/share/doc/qt/examples -plugin-sql-{psql,mysql,sqlite,odbc} -system-sqlite -openssl-linked -nomake examples -nomake tests -no-rpath -optimized-qmake -dbus-linked -system-harfbuzz -journald -libinput -no-use-gold-linker -no-reduce-relocations -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -opengl es2 -v -device-option DISTRO_OPTS=hard-float -skip qtwebengine -xplatform armv7l-unknown-linux-gnueabihfand I end up with this: ( I have libinput, I think it has something to do with unknown architecture?)
/qt-everywhere-opensource-src-5.4.2/qtbase/src/corelib/tools/qlocale_unix.cpp
g++ -o "/home/arch/qt/qt-everywhere-opensource-src-5.4.2/qtbase/bin/qmake" project.o option.o property.o main.o ioutils.o proitems.o qmakevfs.o qmakeglobals.o qmakeparser.o qmakeevaluator.o qmakebuiltins.o makefile.o unixmake2.o unixmake.o mingw_make.o winmakefile.o projectgenerator.o meta.o makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o msvc_vcproj.o msvc_vcxproj.o msvc_nmake.o msvc_objectmodel.o msbuild_objectmodel.o gbuild.o cesdkhandler.o qtextcodec.o qutfcodec.o qstring.o qstring_compat.o qstringbuilder.o qtextstream.o qiodevice.o qdebug.o qmalloc.o qglobal.o qarraydata.o qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfiledevice.o qfile.o qfilesystementry.o qfilesystemengine.o qfsfileengine.o qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o qmap.o qmetatype.o qsettings.o qsystemerror.o qlibraryinfo.o qvariant.o qvsnprintf.o qlocale.o qlocale_tools.o qlinkedlist.o qnumeric.o qcryptographichash.o qxmlstream.o qxmlutils.o qlogging.o qjson.o qjsondocument.o qjsonparser.o qjsonarray.o qjsonobject.o qjsonvalue.o qfilesystemengine_unix.o qfilesystemiterator_unix.o qfsfileengine_unix.o qlocale_unix.o -Wl,--gc-sections
Running configuration tests...
Found pkg-config from $PATH: /usr/bin/pkg-config
Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set.
Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set.
Determining architecture... ()
armv7l-unknown-linux-gnueabihf-g++ -c -pipe -g -Wall -W -fPIC -I. -I../../mkspecs/armv7l-unknown-linux-gnueabihf -o arch.o arch.cpp
armv7l-unknown-linux-gnueabihf-g++ -o arch arch.o -libinput
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:103: recipe for target 'arch' failed
make: *** [arch] Error 1
Unable to determine architecture!Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
Determining architecture... ()
g++ -c -pipe -g -Wall -W -fPIC -I. -I../../mkspecs/linux-g++ -o arch.o arch.cpp
g++ -o arch arch.o -libinput
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'arch' failed
make: *** [arch] Error 1
Unable to determine architecture!Could not determine the host architecture!
Turn on verbose messaging (-v) to see the final report.
System architecture: 'unknown'
Host architecture: 'unknown'
C++11 auto-detection... ()
armv7l-unknown-linux-gnueabihf-g++ -c -pipe -O2 -std=c++0x -Wall -W -fPIC -I. -I../../../mkspecs/armv7l-unknown-linux-gnueabihf -o c++11.o c++11.cpp
armv7l-unknown-linux-gnueabihf-g++ -Wl,-O1 -o c++11 c++11.o -libinput
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'c++11' failed
make: *** [c++11] Error 1
C++11 disabled.
floatmath auto-detection... ()
armv7l-unknown-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/armv7l-unknown-linux-gnueabihf -o floatmath.o floatmath.cpp
armv7l-unknown-linux-gnueabihf-g++ -Wl,-O1 -o floatmath floatmath.o -libinput
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:103: recipe for target 'floatmath' failed
make: *** [floatmath] Error 1
floatmath disabled.
zlib auto-detection... ()
armv7l-unknown-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/armv7l-unknown-linux-gnueabihf -o zlib.o zlib.cpp
zlib.cpp: In function ‘int main(int, char**)’:
zlib.cpp:38:15: warning: variable ‘stream’ set but not used [-Wunused-but-set-variable]
z_streamp stream;
^
zlib.cpp:40:17: warning: variable ‘ver’ set but not used [-Wunused-but-set-variable]
const char *ver = zlibVersion();
^
zlib.cpp:43:9: warning: variable ‘res’ set but not used [-Wunused-but-set-variable]
int res = compress2(0, 0, 0, 0, 1);
^
armv7l-unknown-linux-gnueabihf-g++ -Wl,-O1 -o zlib zlib.o -libinput -lz
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:103: recipe for target 'zlib' failed
make: *** [zlib] Error 1
zlib disabled.
mtdev auto-detection... ()
armv7l-unknown-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/armv7l-unknown-linux-gnueabihf -o mtdev.o mtdev.cpp
armv7l-unknown-linux-gnueabihf-g++ -Wl,-O1 -o mtdev mtdev.o -libinput -lmtdev
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'mtdev' failed
make: *** [mtdev] Error 1
mtdev disabled.
journald auto-detection... ()
armv7l-unknown-linux-gnueabihf-gcc -c -pipe -O2 -Wall -W -fPIC -I. -I../../../mkspecs/armv7l-unknown-linux-gnueabihf -o journald.o journald.c
journald.c: In function ‘main’:
journald.c:37:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
int main(int argc, char **argv)
^
journald.c:37:27: warning: unused parameter ‘argv’ [-Wunused-parameter]
int main(int argc, char **argv)
^
armv7l-unknown-linux-gnueabihf-g++ -Wl,-O1 -o journald journald.o -libinput -lsystemd
/usr/bin/ld: cannot find -libinput
collect2: error: ld returned 1 exit status
Makefile:104: recipe for target 'journald' failed
make: *** [journald] Error 1
journald disabled.
journald support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to /home/arch/qt/qt-everywhere-opensource-src-5.4.2/qtbase/configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to /home/arch/qt/qt-everywhere-opensource-src-5.4.2/qtbase/configure to continue.
[arch@honeybadger qt-everywhere-opensource-src-5.4.2]$ -
Hi and welcome to devnet,
You should add which distribution you are using. Also, did you install all required dev packages ?
-
Thanks! Oh yeah that would be good to do. ArchLinuxArm is what I am using. I am using an HP Touchpad with libhybris which offers a hwcomposer plugin that works with android but only up to Qt 5.4. The problem is arch went to qt5.5 and I need a package to build something called hawaii. Old packages are not available, so I thought I would take a stab at compiling on the device.
I tried creating a qmake.conf directory in qtbase/mkspecs as you might be able to tell, no matter what I do, I get these errors.
I originally was trying to use makepkg but I get the same error.
https://github.com/archlinuxarm/PKGBUILDs/blob/master/extra/qt5/PKGBUILD
-
Looks like currently you are missing the libinput package
-
That is what I thought, but it is installed. I am already using it to run qml-composer. I already have qt5 installed and working for weston, I just wanted to compile my own qt5.4.2...
I can compile qtwayland....
-
Is the library in some place exotic on your system ?
-
Don't think so.
From the /usr folder I did the find command. I do have /lib but that is just a symbolic link to /usr/lib...
[arch@honeybadger usr]$ sudo find . | grep libinput
./bin/libinput-list-devices
./bin/libinput-debug-events
./lib/pkgconfig/libinput.pc
./lib/pkgconfig/xorg-libinput.pc
./lib/xorg/modules/input/libinput_drv.so
./lib/libinput.so
./lib/udev/rules.d/80-libinput-device-groups.rules
./lib/udev/rules.d/90-libinput-model-quirks.rules
./lib/udev/hwdb.d/90-libinput-model-quirks.hwdb
./lib/udev/libinput-device-group
./lib/libinput.so.10
./lib/libinput.so.10.3.0
./include/xorg/libinput-properties.h
./include/libinput.h
./share/man/man4/libinput.4.gz
./share/man/man1/libinput-list-devices.1.gz
./share/man/man1/libinput-debug-events.1.gz
./share/X11/xorg.conf.d/90-libinput.conf
./share/licenses/libinput
./share/licenses/libinput/COPYING
./share/licenses/xf86-input-libinput
./share/licenses/xf86-input-libinput/COPYING -
Can you try again without the -libinput option ? It should be auto-detected
-
I'm running Arch Linux as well, and have encountered this issue. The libsystemd-journal package has been merged into libsystemd, so you need to update Qt's configs accordingly. Drop the "-journal" suffix from "libsystemd-journald" (to just, "libsystemd") in the following files:
- qtbase/config.tests/unix/journald/journald.pro
- qtbase/src/corelib/global/global.pri
For example, here are the patches I applied to make get Qt to compile:
--- qtbase/src/corelib/global/global.pri.orig 2016-03-01 11:37:50.658512771 -0800 +++ qtbase/src/corelib/global/global.pri 2016-03-01 11:37:57.835221806 -0800 @@ -51,6 +51,6 @@ journald { CONFIG += link_pkgconfig - PKGCONFIG_PRIVATE += libsystemd-journal + PKGCONFIG_PRIVATE += libsystemd DEFINES += QT_USE_JOURNALD }
--- qtbase/config.tests/unix/journald/journald.pro.orig 2016-03-01 11:37:17.991653274 -0800 +++ qtbase/config.tests/unix/journald/journald.pro 2016-03-01 11:37:22.671680898 -0800 @@ -1,6 +1,6 @@ SOURCES = journald.c CONFIG += link_pkgconfig -PKGCONFIG_PRIVATE += libsystemd-journal +PKGCONFIG_PRIVATE += libsystemd CONFIG -= qt