Unsolved Qt 5.9.4 For ARM
-
Hey guys, so i'm using Ubuntu 16.04 and i would like to make Qt for my embedded linux (which is Mini6410). I do have Qt 4.7 installed and running with to following ./configure: "./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon".
The problem is that qws isn't present in Qt 5 and above. I do have a cross compiler (tool chain) installed. Can anyone help? Appreciate the attention. -
Hi, so I don't understand the question. Are you asking for alternatives to QWS? You can use QWidgets/X11 on embedded systems which covers pretty much everything you would need in a GUI.
Or are you asking about compilation of Qt 5 for arm?
-
-
More like a compilation. I was able to compile using arm-linux-gnueabi, the executable is recognized by my embedded system. The problem is with libraries, when i try to execute, i get that some .so.5.9.4 is missing (like libQt5Widget and so on). I pass it thru ftp mannually and was able to get all the .so missing executables. When i was ready to run the test app i got that: "/lib/libstdc++.so.6 is missing" i didnt find this .so in my local host /lib/ alongside the other .so that was missing.
I think i also have to have the Qt installed in my embedded system, right?! Any solutions? Thanks once againThe qws problem is that i used the compiler in that qt folder, but the arm-linux-gnueabi worked for this new version. I believe i will have to adjust the touch afterwards but first i need to make Qt5 application works. TY!
-
@M.Gimenez So basically the problem here is you are deploying a binary built on a newer system onto one that is older. So it doesn't have the same libraries. Deploying binaries in linux is a huge pain. It is a big enough topic that there are massive projects made to try to make it easier.
This may help a lot:
http://doc.qt.io/qt-5/linux-deployment.htmlBut it basically boils down to running
ldd ./yourapp
on your development machine and finding which libs it needs. Then making sure those libs exist on your target machine. I usually will make an install package that has those libs in them (assuming they are ones you should have, libstdc++ is not one you should distribute). There are legal issues with distributing l-gpld binaries like libstdc++. On top of that you are almost guaranteed to make a mess of things. If you insist on doing that though, just make sure it is self contained inside your app bundle and not installed system wide. Then just use something like:LD_LIBRARY_PATH=. ./myapp
Make sure your libs including Qt and whatever else are in the same dir as myapp. Or you could use a start script and a more package like layout with bin/ lib/ dirs.
Here's part of a bash script I use to create a run script for one of my products:
echo "LD_LIBRARY_PATH=\"\`pwd\`/lib\" ./bin/myapp \$@" >> $escript echo >> $escript chmod 755 $escript
$escript is the variable pointing to the launch file.
-
@ambershark Thank you so much, you made everything really clear! I'm gonna try to make it work but now i do have where to start, thanks once again
-
No problem, feel free to post back here if you get stuck on something. :)
Oh and this may make things easier: