Installation QT 5.11 on Raspberry Pi 3
-
@sierdzio said in Installation QT 5.11 on Raspberry Pi 3:
Also, as @sneubert suggests, cross compilation will allow you to build much, much faster.
maybe you can give link to manual, how crosscompile QT from windows? i have not linux machine now.
i found only manuals to crosscompile from linux.@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
maybe you can give link to manual, how crosscompile QT from windows?
You like making things harder for yourself, right? ;-) There is this guide but it's known to work for a very limited range of Qt versions only.
A much better option is to set up some Linux OS (in a virtual machine or as dual boot on your PC) and cross compile via Linux. It's really much easier to do (which does not mean it is easy...). Installing a Linux distro like Ubuntu takes 20 minutes.
-
@sierdzio said in Installation QT 5.11 on Raspberry Pi 3:
A much better option is to set up some Linux OS (in a virtual machine or as dual boot on your PC) and cross compile via Linux. It's really much easier to do (which does not mean it is easy...). Installing a Linux distro like Ubuntu takes 20 minutes.
ok, i'll make so))) if have problems (99%) i'll ask here or create new topic?
-
As you prefer, I don't mind.
-
I installed Ubuntu 18.04 in VirtualBox and now trying to install QT, following this:
http://doc.qt.io/QtForDeviceCreation/qtee-preparing-hardware-rasberrypi.html
I downloaded online installer, but i cant find QT for Device Creation. Only QT 5.11.2 and modules.
Can I install all i need via online installer? -
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?
-
it gives
g++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
and after gives error i write upper.
@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
it gives
g++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
and after gives error i write upper.
More than likely you ran out of memory. That's when I see internal compiler errors. You can make g++ use less memory by not using
-pipe
which will write intermediate stuff to disk rather than piping it to the next process.Like others have said you're much better off cross compiling on a good system, but if you want to continue you just need to lower g++'s memory consumption. The easiest way to do that is not allowing piping.
Edit: I replied before I saw @mranger90's post... he's absolutely right, that's exactly what popped into my head too. ;)
-
@sierdzio said in Installation QT 5.11 on Raspberry Pi 3:
A much better option is to set up some Linux OS (in a virtual machine or as dual boot on your PC) and cross compile via Linux. It's really much easier to do (which does not mean it is easy...). Installing a Linux distro like Ubuntu takes 20 minutes.
ok, i'll make so))) if have problems (99%) i'll ask here or create new topic?
@gogoer said in Installation QT 5.11 on Raspberry Pi 3:
@sierdzio said in Installation QT 5.11 on Raspberry Pi 3:
A much better option is to set up some Linux OS (in a virtual machine or as dual boot on your PC) and cross compile via Linux. It's really much easier to do (which does not mean it is easy...). Installing a Linux distro like Ubuntu takes 20 minutes.
ok, i'll make so))) if have problems (99%) i'll ask here or create new topic?
Definitely get at least a linux vm... using windows for anything other than playing video games is so 1990s ;)
Windows lost the OS wars about a decade ago and is very far behind posix OSes now.
-
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?
@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++'