Unsolved Installation QT 5.11 on Raspberry Pi 3
-
@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
i compile QT in Ubuntu and have error:
arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/opt/qt5pi/sysroot -Wl,-O1 -Wl,-rpath-link,/opt/qt5pi/sysroot/opt/vc/lib -Wl,-rpath-link,/opt/qt5pi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/opt/qt5pi/sysroot/lib/arm-linux-gnueabihf -o verifyspec verifyspec.o
/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find crt1.o: Нет такого файла или каталога
/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find crti.o: Нет такого файла или каталога
/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lmwhat can i do?
These errors are because of your sysroot. They come from not having glibc (or whatever libc you use) in the target architecture. Those should be in your sysroot directory.
What is in /opt/qt5pi/sysroot? Is that a valid directory? What's the output of
find /opt/qt5pi/sysroot
? -
i correct sysroot problem, thank you.
i deleted folders except listed upper.
then i configure with:
../qt-everywhere-src-5.11.2/configure -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -nomake examples -nomake tests -make libs -pkg-config -no-use-gold-linker -v
and its configured without errors, just some notes.
during compilation have errors:
/opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp: В функции-члене «virtual void QEglFSKmsGbmWindow::resetSurface()»: /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:58:5: ошибка: нет декларации «PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC» в этой области видимости PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC createPlatformWindowSurface = nullptr; ^ /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:58:46: ошибка: expected «;» before «createPlatformWindowSurface» PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC createPlatformWindowSurface = nullptr; ^ /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:61:9: ошибка: нет декларации «createPlatformWindowSurface» в этой области видимости createPlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>( ^ /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:61:56: ошибка: expected type-specifier before «PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC» createPlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>( ^ /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:61:56: ошибка: expected «>» before «PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC» /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:61:56: ошибка: expected «(» before «PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC» /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:62:68: ошибка: expected «)» before «;» token eglGetProcAddress("eglCreatePlatformWindowSurfaceEXT")); ^ /opt/qt5pi/qt-everywhere-src-5.11.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp:65:9: ошибка: нет декларации «createPlatformWindowSurface» в этой области видимости if (createPlatformWindowSurface) { ^ Makefile:2877: recipe for target '.obj/qeglfskmsgbmwindow.o' failed make[7]: *** [.obj/qeglfskmsgbmwindow.o] Error 1 make[7]: *** Ожидание завершения заданий… make[7]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms» Makefile:72: recipe for target 'sub-eglfs_kms-make_first' failed make[6]: *** [sub-eglfs_kms-make_first] Error 2 make[6]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src/plugins/platforms/eglfs/deviceintegration» Makefile:104: recipe for target 'sub-deviceintegration-make_first-ordered' failed make[5]: *** [sub-deviceintegration-make_first-ordered] Error 2 make[5]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src/plugins/platforms/eglfs» Makefile:125: recipe for target 'sub-eglfs-make_first' failed make[4]: *** [sub-eglfs-make_first] Error 2 make[4]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src/plugins/platforms» Makefile:102: recipe for target 'sub-platforms-make_first' failed make[3]: *** [sub-platforms-make_first] Error 2 make[3]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src/plugins» Makefile:776: recipe for target 'sub-plugins-make_first' failed make[2]: *** [sub-plugins-make_first] Error 2 make[2]: выход из каталога «/opt/qt5pi/qt5build/qtbase/src» Makefile:48: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: выход из каталога «/opt/qt5pi/qt5build/qtbase» Makefile:52: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2
what it can be?
-
Oh, I remember stumbling upon that error myself, but I don't remember how I resolved it myself (possibly by switching OpenGL driver in
pi-config
and updating sysroot).These might help:
-
thank your all!!! i compiled and builed qt 5.10.1. I tryed build 5.11.2, but have errors. I think 5.10.1 is enough.
I installed QTCreator and configured it. But when i compile project, i have error:sys/cdefs.h: no such file or directory
file cdefs.h is in /usr/include/sys/cdefs.h, ichecked it.
i do:export Path=$PATH:/usr/include
but i have same error still building project in QTCreator.
what i need to do to solve this? -
Have you followed the guide for setting up Qt Creator for use with RPi? https://wiki.qt.io/RaspberryPi2EGLFS#Qt_Creator
-
yes i do.
but at Kit screen i have error: compiler "RaspGCC" (x86-linux-generic-elf-64bit) cant create code for QT profile "Q5.10.1 (qt5pi)" (arm-linux-generic-elf-32bit). -
@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
yes i do.
but at Kit screen i have error: compiler "RaspGCC" (x86-linux-generic-elf-64bit) cant create code for QT profile "Q5.10.1 (qt5pi)" (arm-linux-generic-elf-32bit).Hm, unless you misconfigured the RaspGCC compiler (see in "compilers" tab), it should work. If you're using Qt creator 4.7, try with 4.6. I've seen similar issues on Android with newest QtC, perhaps it's just IDE bug.
-
i configured everythin by manual one more time, now when i create empty qtquick project in qtcreator and try to build it, i have in console output:
cannot run target compiler 'arm-linux-gnueabihf-g++'
-
@gogoer Please show you compiler configuration in "Compiler" tab.
-
here it:
-
@gogoer If you copy/past the path to compiler into a terminal: does it start/run?
-
yes, in terminal this path works good!
-
maybe i need to use another compiler? why this dont work?
-
here is the output:
16:24:47: Выполняются этапы для проекта 111... 16:24:47: Запускается: «/opt/qt5pi/sysroot/usr/local/qt5pi/bin/qmake» /home/pasha/111/111.pro -spec devices/linux-rasp-pi3-g++ CONFIG+=debug CONFIG+=qml_debug Project ERROR: Cannot run target compiler 'arm-linux-gnueabihf-g++'. Output: =================== Using built-in specs. COLLECT_GCC=arm-linux-gnueabihf-g++ Target: arm-linux-gnueabihf Configured with: /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.8-2014.01/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --enable-multiarch --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-isl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-float=hard Thread model: posix gcc version 4.8.3 20140106 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11) COLLECT_GCC_OPTIONS='-march=armv8-a' '-mtune=cortex-a53' '-mfpu=crypto-neon-fp-armv8' '-mfloat-abi=hard' '-E' '-v' '-shared-libgcc' '-mtls-dialect=gnu' /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/cc1plus -E -quiet -v -imultilib . -imultiarch arm-linux-gnueabihf -iprefix /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/ -isysroot /opt/qt5pi/sysroot -D_GNU_SOURCE - -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard -mtls-dialect=gnu /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../libexec/gcc/arm-linux-gnueabihf/4.8.3/cc1plus: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory =================== Maybe you forgot to setup the environment? 16:24:47: Процесс «/opt/qt5pi/sysroot/usr/local/qt5pi/bin/qmake» завершился с кодом 3. Ошибка при сборке/установке проекта 111 (комплект: Raspberry) Во время выполнения этапа «qmake» 16:24:47: Прошло времени: 00:00. my path to qmake: ``` /opt/qt5pi/sysroot/usr/local/qt5pi/bin/qmake
is it ok?
-
@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
libz.so.1: cannot open shared object file: No such file or directory
Where is your sysroot and does it contain libz.so.1?
-
thank you!!!!
i make:sudo apt-get install zlib1g:i386
and it go on!!
-
I compiled my project and copy executable file to RPI.
But when I execute it, i have error*failed to add service - already in use?
it crashes on function
QGuiApplication app(argc, argv);
and one more question: i create and install qt5.10 on ubuntu, what i need to do to update qt version on RPI? as i understand it still uses old version.
-
@gogoer I don't know what "service" is mentioned in the error.
"install qt5.10 on ubuntu, what i need to do to update qt version on RPI" - do you mean you cross-compiled Qt 5.10 on your Ubuntu machine? If so you can copy the libs to the same location or RPi you defined using -prefix parameter. -
yes, i cross-compile on ubuntu. what directory i need to copy to RPI? and what is -prefix parameter?
-
i created blank QTQuick application and compile it.
when i start it on RPI have error:QML debugging is enabled. Only use this in a safe environment. * failed to add service - already in use?
one more question:
where i can configure path to copy on RPI? now after pressing Run button executable file copies to /opt/ directory on ubuntu. i want to change it, but cant find where to do this.