Cross compliation

Hi,

I would like to see if there is any documentation about how to cross compile to the device from a GNU/Linux desktop.

Reading some post, mainly from retroarch, is suggested to do the compilation from the device itself, installing gcc and the toolchain.

I managed to cross-compile my code from my Ubuntu desktop to run on my GameShell using the standard gcc cross-compiler (ubuntu package: gcc-arm-linux-gnueabihf). More details here.

2 Likes

That is very nice. For the dependencies did you copy the libraries from the gameshell image? My concern is how to have the same libraries with the same compilation options from the gameshell in the desktop, where gcc for arm can find them.

What’s the advantage of compiling on your desktop to later send to the GameShell?

Honest question! I don’t know much about the subject and I feel it’s so easy to just SSH the GameShell that it’s better to just to it there.

I can think on a couple.

  • Speed. Compile the code in a desktop / laptop machine is going to be always faster than in the allwinner ARM processor.

  • Easy development. If you have the same version of libraries in both architectures, you can easily develop and test in the desktop one, and iterate over it. Later you can transfer the code and test in the machine itself. Doing that in the gameshell via SSH will always be slower.

2 Likes

You’ll have to install the armhf version of the library on your desktop as well as one your Gameshell for this to work. In my case, I have very little dependencies so it’s fairly simple to do

Also, you don’t have to copy/nfs your code on the GameShell.

Makes sense, thanks!