Unsolved Compile QT 5.8 to cross-compile Beaglebone
-
Please add the
-v
option to have more details about what is happening.Also, you should do out of source build, so if something goes wrong you can just nuke the build folder and start anew.
-
Hi, SGaist and Dario -
I had to rebuild my Linux system from scratch recently, and am just now getting my cross-development tools working with the Beaglebone Black. I think I'm almost there...right now, when I attempt to debug, I get an error message from the target system: "Architecture rejected target-supplied description."
I've gone over my notes, and it doesn't seem like I encountered this before. The binary I build for the BBB does run (it's just hello world), so I'm wondering if the error message refers to the debugger I'm invoking? SGaist: any suggestions?
Once I have this working, I'll make an improved write-up of the necessary steps and post it in this thread.
-
You are maybe using the wrong GDB to connect to your target.
-
Indeed I was. I can now debug hello world, though I am getting this warning when I start:
Could not load shared library symbols for 7 libraries, e.g. /lib/arm-linux-gnueabihf/librt.so.1. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?
It didn't affect this particular program, but I'd like to remedy this. Can you please remind me what needs to be done here? As I recall, it's something to do with sysroot, but I can't remember the details.
Thanks.
EDIT: I forgot to mention I also get this message at program startup:
stdin: is not a tty
Is this because I haven't allocated a terminal for the output of the debug session?
-
I never got that one but I'd check the Kit for the sysroot related stuff.
That would make sense yes.
-
My BBB kit's sysroot is set to the one I downloaded from Linaro. Is there anything else I need to do? I don't copy it to the BBB, do I?
-
Hi! Once you have compiled qt-creator 5.8. did you get .so libraries for BBB?
A mean libQt5Gui.so.5.8.0, libQt5Serial.so.5.8.0 etc... for BBB debian images.
what versions of .so libraries are installed now on your beaglebone black board? -
@Andrey-Shmelew Compiling qt-creator does not give you those libraries. To get them, I believe you need to do a full build of Q for the BBB.
-
Ok!
Now i have on Windows host machine Qt creator 5.5.0, on BBB i have libraries *.so.5.3.2. How can I be sure that the application will work identiaclly on Windows Host machine and on Linux BeagleBone Board?
-
@Andrey-Shmelew said in Compile QT 5.8 to cross-compile Beaglebone:
How can I be sure that the application will work identiaclly on Windows Host machine and on Linux BeagleBone Board?
Do you want to use your app on Windows and BBB?
To be sure it behaves the same you need to test on both.
To develop on Windows for BBB you need the Qt libs built for BBB on your Windows machine as well + cross compiler + sysroot. -
@jsulm said in Compile QT 5.8 to cross-compile Beaglebone:
Do you want to use your app on Windows and BBB?
I want to use my application on BBB, but i want it develop and debug on Windows first.
I plan to develop multithread stable secutiy system based on BBB/Qt/QML. I already have the Qt libs built for BBB on your Windows machine as well + cross compiler + sysroot. But Qt libs was prebuilt. Now i can develop app on Windows and deploy it on BBB, but i am not sure it is the best way. -
@Andrey-Shmelew said in Compile QT 5.8 to cross-compile Beaglebone:
but i am not sure it is the best way
Why not? It is the usual way to develop for other devices. Personally I would prefer Linux as development machine, but it is doable on Windows as well.
-
You think i should ignore mismatches of libraries versions (*.so.5.3.2 against Qt creator 5.8.0) and keep going?
-
@Andrey-Shmelew There is no QtCreator 5.8 - current version is 4.2.2.
QtCreator is not the same as Qt. QtCreator is an IDE, Qt is a C++ framework. You can use any Qt version with QtCreator. QtCreator version doesn't matter at all.
Or do you mean you have Qt 5.8 built for BBB on your Windows machine? -
@jsulm
i have
on Host Windows 10:
Qt Creator 4.1.0
Based on Qt 5.7.0 (MSVC 2013, 32 bit)
Qt Creator has a Kit for BBBon Host Windows 10:
GNU toolchaon for BeagleBone, GCC version 4.9.2 (libs, compiler, gdb debugger, sysroot) -
trying to compile Qt 5.8 for BBB.
Configure script:../qt-everywhere-opensource-src-5.8.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -device linux-beagleboard-g++ -sysroot C:/SysGCC/Beaglebone/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5 -device-option CROSS_COMPILE=C:/SysGCC/Beaglebone/bin/arm-linux-gnueabihf- -opensource -confirm-license -v
the output
Configure summary: Building on: arm Building for: arm Configuration: cross_compile compile_examples enable_new_dtags largefile neon precompile_header shared rpath accessibility release c++11 concurrent dbus no-pkg-config mremap reduce_exports stl Build options: Mode ................................... release Building shared libraries .............. yes Using C++ standard ..................... C++11 Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. yes Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs examples Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... no Qt Gui ................................. yes Qt Widgets ............................. yes Support enabled for: Accessibility .......................... yes Using pkg-config ....................... no QML debugging .......................... yes udev ................................... no Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no iconv .................................. no ICU .................................... no Logging backends: journald ............................. no syslog ............................... no Using system PCRE ...................... no Qt Network: getaddrinfo() .......................... no getifaddrs() ........................... no IPv6 ifname ............................ no libproxy ............................... no OpenSSL ................................ no Qt directly linked to OpenSSL ........ no SCTP ................................... no Use system proxies ..................... yes Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Gui: FreeType ............................... yes Using system FreeType ................ no HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... no PNG .................................. yes Using system libpng ................ no OpenGL: EGL .................................. no Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no Session Management ..................... yes Features used by QPA backends: evdev .................................. no libinput ............................... no mtdev .................................. no tslib .................................. no xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. no LinuxFB ................................ no Mir client ............................. no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt SerialBus: Socket CAN ............................. no Socket CAN FD .......................... no QtXmlPatterns: XML schema support ..................... yes Qt QML: QML interpreter ........................ yes QML network support .................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Quick Designer ............. yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes ShaderEffect item ...................... yes Sprite item ............................ yes Qt Gamepad: SDL2 ................................... no Qt 3D: System Assimp .......................... no Qt Wayland Client ........................ no Qt Wayland Compositor .................... no Qt Bluetooth: BlueZ .................................. no BlueZ Low Energy ....................... no Linux Crypto API ....................... no Qt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux ........................ no OpenAL ................................. no PulseAudio ............................. no Resource Policy (libresourceqt5) ....... no DirectShow ............................. no Windows Media Foundation ............... no Qt Location: Gypsy GPS Daemon ....................... no WinRT Geolocation API .................. no Qt Sensors: sensorfw ............................... no Qt WebEngine: Proprietary Codecs ..................... no Spellchecker ........................... yes ALSA ................................... no PulseAudio ............................. no Note: QtSerialBus: Cannot find linux/can.h and linux/can/raw.h Linux headers for socketCAN support. Note: No wayland-egl support detected. Cross-toolkit compatibility disabled. WARNING: No QPA platform plugin enabled! This will produce a Qt that cannot run GUI applications. The dependencies needed for xcb to build are listed in src/plugins/platforms/xcb/README ERROR: detected a std::atomic implementation that fails for function pointers. Please apply the patch corresponding to your Standard Library vendor, found in qtbase/config.tests/common/atomicfptr ERROR: The OpenGL functionality tests failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.
Have 1 Warning and 2 Errors :( :( :( :( :(
What do i do wrong? Help!
(qt 5.5.0 compiled succesfully earlier) -
This is the command that I used to configure Qt for BBB. Obviously, you'll need to change some pathnames, but it might work better than what you're doing now.
opt/Qt/5.8/Src/qtbase/configure -platform linux-g++ -xplatform linux-arm-gnueabi-g++ -release -device linux-beagleboard-g++ \ -sysroot /opt/arm-toolchain/sysroot-glibc-linaro-2.23-2017.02-arm-linux-gnueabihf/ \ -prefix /opt/QtForBBB/ \ -device-option CROSS_COMPILE=/opt/arm-toolchain/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- \ -qt-xcb \ -nomake tests -nomake examples -no-opengl
-
ok, i see you are using Linux host machine.
Where to download linaro toolchain? -
-
@mzimmers
i Cross Compiled Qt 5.8, so now when i try do deploy, and i've got an errors:/usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5PrintSupport.so.5: no version information available (required by /usr/test/untitled2) /usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5Script.so.5: no version information available (required by /usr/test/untitled2) /usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5: no version information available (required by /usr/test/untitled2) /usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5: no version information available (required by /usr/test/untitled2) /usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5SerialPort.so.5: no version information available (required by /usr/test/untitled2) /usr/test/untitled2: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: no version information available (required by /usr/test/untitled2) libEGL warning: DRI3: Screen seems not DRI3 capable libEGL warning: DRI2: failed to authenticate /usr/test/untitled2: relocation error: /usr/test/untitled2: symbol _ZN9QDateTimeC1EOS_, version Qt_5 not defined in file libQt5Core.so.5 with link time reference Application finished with exit code 127.
Help...?