Q. Is it important to host and target computers have the same architecture, I mean both should be 32-bits (x86 or i586/i686) or both should be 64-bits (x86_64)?
No, you can any variation, although I have never seen 32 bit host and 64 bit target. The other combination should just work according to my knowledge.
Q. Is it important to use which version of GCC with Qtopia? another thing is which version of QT/Embedded should be used?
Yes, it is important. Do not mix old and new softwares because they will not fit nicely together.
Q. Do I have to use the old versions of QT/Embedded like Qtopia or I can use the newer versions like qt-everywhere-opensource-src-4.8.4?
No. In fact, do not use Qtopia the ancient, try to use a recent Qt release like Qt 5.2. The reason is simply the fact that is design flaws, and it gets no maintenance these days.
another problem is about kernel version: is it important Q. Is it important to host and target computers have the same kernel number (x.y.z)?
No, it is almost always different, actually. That is due to the fact that there are so many varieties of the Linux kernel out there, used by different distributions or distribution generators.
At last, I appreciate you to give a your general but practical guideline/tips to cross-compiling from x86 GCC to FreindlyARM platform.
If you want to build Qt on your own for your target, you will need to pay attention to the -platform
and -xplatform
options. The former defines your host platform, and the latter the embedded target platform.
Basically, you need to make qmake has proper support for your board in form of mkspecs files. If it does not, it is relatively easy to get one from scratch based on the existing ones.
When you build your software for the embedded board, you will need to use the -spec
option in a qmake based project to select the right target.
I would also suggest to give some consideration to QtCreator as a newcomer where you can properly configure the "kits", and customize the deployment steps, etc. It has a lot of builtin cross-toolchain development support.