I recently bought a Raspberry Pi. I already have configured it, and I install a cross compiler for arm on my desktop (amd64). I compiled a simple hello world program and then I copy it from my desktop to my Pi with scp ./hello david@192.168.1.33:~/hello.After login in my Pi I run ls -l hello and I get a normal response:-rwxr-xr-x 1 david david 6774 Nov 16 18:08 helloBut when I try to execute it, I get the following:david@raspberry-pi:~$ ./hello-bash: ./hello: No such file or directorydavid@raspberry-pi:~$ file hellohello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x6a926b4968b3e1a2118eeb6e656db3d21c73cf10, not strippeddavid@raspberry-pi:~$ ldd hello     not a dynamic executable
No such file or directory when executing a cross-compiled program on a Raspberry Pi
compiling;executable;raspberry pi;arm
If ldd says it is not a dynamic executable, then it was compiled for the wrong target.Obviously you did cross-compile it, as file says is a 32-bit ARM executable.  However, there's more than one ARM architecture, so possibly your toolchain was configured incorrectly.If you are using crosstool-NG, have a look at the .config for the value of CT_ARCH_ARCH.  For the raspberry pi, it should be armv6j1 -- or at least, that's what's working for me.  There are other specifics, but I think that should be enough.  Unfortunately, if it's wrong, you now have to rebuild.IMO getting a cross-compiler toolchain to work can be tedious and frustrating, but, presuming the host is not a significant factor (it shouldn't be), in this case it can be done.   Crosstool-ng uses a TLI configurator, so if you end up having to try multiple builds, write down your choices each time so you know what worked.1 I believe armv7 is a much more common arch (lots of phones and such), so if you are just using something you believe is a generic ARM cross-compiler, that's probably the issue. These numbers are confusing as, e.g., the pi's processor is an ARM11, but (as per that page), the ARM11 family of processors uses the ARMv6 architecture -- i.e. ARM11 is an implementation of ARMv6.