compilation / linking QT for embedded linux

Imahilus
Hello,

I've been trying to get QT for embedded linux up and running on a mini2440
board. Now I've managed to install the arm-gcc-4.4.3 cross-compiler (and
have verified it works as I can compile something for the board from the
command line). However, getting QT into the picture has been a struggle
thus far.
I have downloaded qt-everywhere-opensource-src-4.7.1, as that is the
embedded QT library that is linked to from most articles and blog posts.
I've tried configuring, making and make-installing it, eventually got it to
do these steps with no errors, but it appears to be compiling my
application in QTCreator for my x86 platform (running ubuntu 10.10), not
the ARM platform I've configured and make'd it for.

Below I've included the steps I've taken to get this far.. since it doesn't
work as I think it should, I'm sure I did something wrong:

install QTCreator from the ubuntu software center
Copy linux/arm-linux-gcc-3.4.1 from the FriendlyARM CD to disk
Edit /etc/bash.bashrc
    add line to bottom:
PATH=$PATH:/home/imahilus/work/opt/FriendlyArm/toolschain/4.4.3/bin
Copy linux/qt-everywhere-opensource-4.7.1 from the FriendlyARM CD to disk
Edit qt-everywhere-opensource-4-7-1/mkspecs/qws/arm-linux-g++/qmake.conf
Change
    QMAKE_STRIP = ...
    To
    QMAKE_RANLIB = arm-none-linux-gnueabi-ranlib

Run ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix
/usr/local/Qt -little-endian
Run make (takes 2 and a half hours)
Go to /usr/local
Run sudo chown -hR user Qt/    (where user is your username)
Run sudo chgrp -hR group Qt/    (where group is the group your user belongs
to)
Run sudo su
Run make install


Then I opened QTCreator, tried compiling with the QT in /usr/local/Qt, and
it ran like an ordinary x86 based application. Switched the qmake in
/usr/bin with the one in /usr/local/Qt, compiled the example using either
one of the QT's, still.. both x86 based applications.

I hope somebody is able to give me detailed instructions to get QT up and
running for the mini2440, or at the least a pointer as to in which
direction to look for the solution.
Thank you for any assistance.

davef
< Copy linux/arm-linux-gcc-3.4.1 from the FriendlyARM CD to disk

Do you mean arm-linux-gcc-4.4.3?

You changed a lot more than that in your qmake.conf file, didn't you?

Did you have more EXPORT statements, ie for the machine type etc? 

Also, I had almost endless grief using sudo on Ubuntu 10.04

http://billforums.station51.net/viewtopic.php?f=8&p=937&sid=2bf4...

After getting tslib to compile I couldn't face giving Qt another go.

Good luck!

Imahilus
Hello,

my bad, indeed arm-linux-gcc-4.4.3, not 3.4.1.
And no, no more changes to qmake.conf than that. Initially I changed a lot
more, mainly using an absolute path to the toolchain, but it ended up not
being able to find a component (ran-lib I believe), thus I ended up with
mostly the default again (which didn't give that error).
No exports beyond those listed either.

Also thank you for the link, it appears to contain some more information,
of which at least some appears to be new.

Any further insights are still welcome, but at least I have some more
things to try.

davef
ranlib errors sounds familiar, I spent a lot of time trying to get through
that stage.

Setting up paths to libraries or ?? seemed to be a problem.

Maybe a look through this might help:

http://www.sereno-labs.com/qt-4-6-2-installation-procedure-for-friendlya...

Good luck!

Imahilus
Followed the instructions from sereno-labs to the letter this time.
QT is compiled and placed in /usr/local/Qt
Even used the lower version cross compiler they mentioned.

No errors, QtCreator sees this Qt version, but still thinks it is a desktop
edition? I geuss I'm missing the step of actually using Qt with one of my
projects, and how to possibly interface it with QtCreator (this is
preferable, not required.. I'd settle for being able to compile my project
with Qt for the mini2440 through the command-line)

davef
What happens if you do:
<which arm-linux-gcc>

or

<echo $PATH> ?

Imahilus
Hello,
below I've added the results from those commands:

> which arm-linux-gcc
/usr/local/arm/4.3.2/bin/arm-linux-gcc

> echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loc
al/arm/4.3.2/bin

davef
Good luck!