Get Qt example running on SAM9N12
I'm new to Qt, but I hope my question is not basic...
I'm trying to get a example running on my Evaluation board Sam9N12-Ek with Linux 3.10 and buildroot with qt 4.8.6. I can run the examples with: ./example -qws linuxfb .Works perfekt.
Now I made a own Qt-Gui-Application on my Ubuntu 14.04. Run&Build is ok.
Now i probably have to compile it for the embedded linux.
qmake example.pro -r -spec linux-arm-gnueabi-g++
But i can't run the Application on the board...
For the other things i used: make CROSS_COMPILE=arm-none-eabi-
But this compiler is not avalible in 4.8.6 libary. (qt-everywhere-opensource-src-4.8.6.tar.gz with this setup: http://www.gwutama.de/blog/2014/10/07/compiling-qt-4-8-6-on-ubuntu-14-04/)
I' runnin out of google...Does anyone have some hints for me?
Thanks a lot
Hi and welcome to devnet,
Did you cross-compile Qt for your board ? If so, the just call the qmake from that version of Qt to build your project
I have a cross-compiled Qt-Version from buildroot.org on the Evaluation-Board, but it doesn't know the qmake command, sadly...
Well i didn't see this post: https://forum.qt.io/topic/52546/tuto-build-qt-to-cross-compile-for-arm/2
I'll give it a try!
HI, sorry to bother you again. I crosscompiled everything like explained:https://forum.qt.io/topic/52546/tuto-build-qt-to-cross-compile-for-arm/2
With the qtcreator 5.4.1 i choose at build&run the libaries for qt4.8.5 und arm-linux-gnueabihf-g++ . If i run it everything gets compiled, no errors occure.
Then i copied the files to a usb stick and try to run it from the usb-stick with: ./example -qws linuxfb but something with bash sh occures... I also tried chmod but nothing changed.
list itemThe rest of the board software is compiled with CROSS_COMPILE=arm-none-eabi- : Do i have to compile qt also with arm-none-eabi- or should gcc-linaro-arm-linux-gnulist itemeabihf- also work?
Does the qtcreator also needed to be crosscompiled?
What exact error are you getting ?
Unless you plan to run Qt Creator on your board, no
On board the board: -sh: ./example: not found
file examplereturn ?
On the SAM9N12-Linux "file" is not installed but on ubuntu(compiling PC) it says:
benephil: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.1.1, BuildID[sha1]=00493b39dc19cde81d1b1ac906499c24698e97f4, not stripped
Good, but the thing is, it doesn't seems that the file is copied over to the target
Sorry, I don't get it. What do you meen?
I copied the folder with the crosscompiled files from my PC to a usb-stick, mounted the usb-stick on the Evaluationboard and tried to run the example.
Then that's normal, the libraries can't be found, you should write a little bash script that setups the environment for your application to run. Have a look at the Linux Deployment Guide for more details about this
Ok so i probably have some libary issues... With crosscompilation everything should be fine? Do i have to write a bash script for those libaries?:
checking sub-depends for '/usr/lib/libQtGui.so.4'
checking sub-depends for '/usr/lib/libQtNetwork.so.4'
checking sub-depends for '/usr/lib/libQtCore.so.4'
checking sub-depends for '/lib/libpthread.so.0'
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f60000)
libdl.so.0 => /lib/libdl.so.0 (0xb6f54000)
libc.so.0 => /lib/libc.so.0 (0xb6efb000)
checking sub-depends for '/usr/lib/libstdc++.so.6'
checking sub-depends for 'not found'
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for 'not found'
checking sub-depends for '/usr/lib/libts-1.0.so.0'
checking sub-depends for '/usr/lib/libgthread-2.0.so.0'
checking sub-depends for '/usr/lib/libglib-2.0.so.0'
checking sub-depends for '/usr/lib/libintl.so.8'
checking sub-depends for '/lib/libm.so.0'
libc.so.0 => /lib/libc.so.0 (0xb6ed4000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f2d000)
checking sub-depends for '/lib/libc.so.0'
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f4e000)
checking sub-depends for '/lib/libdl.so.0'
libc.so.0 => /lib/libc.so.0 (0xb6ee9000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f42000)
checking sub-depends for '/lib/librt.so.0'
libc.so.0 => /lib/libc.so.0 (0xb6eda000)
libdl.so.0 => /lib/libdl.so.0 (0xb6ece000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb6eb2000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f33000)
checking sub-depends for '/usr/lib/libiconv.so.2'
libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00000000)
libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x00000000)
libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00000000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00000000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00000000)
libm.so.6 => not found (0x00000000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
libc.so.6 => not found (0x00000000)
libts-1.0.so.0 => /usr/lib/libts-1.0.so.0 (0x00000000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00000000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00000000)
libintl.so.8 => /usr/lib/libintl.so.8 (0x00000000)
libm.so.0 => /lib/libm.so.0 (0x00000000)
libc.so.0 => /lib/libc.so.0 (0x00000000)
libdl.so.0 => /lib/libdl.so.0 (0x00000000)
librt.so.0 => /lib/librt.so.0 (0x00000000)
/lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)
libiconv.so.2 => /usr/lib/libiconv.so.2 (0x00000000)
not a dynamic executable
Hey, i observed one thing: If i run the project in qtcreator and check the "run in terminal" i get a: "Syntax error: word unexpected (expecting ")") "
Is there something i can/should do about this issue? Because if i run "sh example" i get the same error.
What distribution is running on your board ?
At91linux with buildroot-rfs
Did you install Qt 4 directly through Buildroot ?
Yes, i did
no further ideas?
Did you also cross-compile Qt using the libraries from Buildroot ?
On the dev machine no, on the evaluationboard yes
Just to be sure I understand you correctly: you cross-compiled Qt on your desktop using a different set of libraries rather that than the one from your evaluation board and you compiled natively on your device ?
Yes, but it should be the same version. Buildroot uses 4.8.6 and on the dev machine i also had 4.8.6
Same Qt version is one thing, but it looks like you don't have the same set of dependencies between both versions and maybe not the same set of options given to configure
Ok thanks, do you have any hints what i have to look for, to get the same dependencies?
Use your device root filesystem as sysroot to cross-compile Qt
Ok i added the compiled sysroot that i compiled with buildroot. I got the same error:
Here is a screenshot incl. the syntac error when I'm building the project:
Hi, sorry but doesn't any one have an idea?
What do you have where the syntax error occurs ?