gnueabi errors on 64-bit Ubuntu Linux
When you first started Android development, you installed 64-bit Ubuntu Linux,
CodeSorcerer toolchain, you may have encountered the following error.
---------------------------------------------------------
arm-none-linux-gnueabi-gcc: No such file or directory
or
arm-none-linux-gnueabi-gcc: command not found
or
arm-none-linux-gnueabi-gcc: cannot execute binary files
---------------------------------------------------------
Looking at the properties of the arm-none-linux-gnueabi-gcc file with the file command,
ELF 32-bit LSB executable, which means that the toolchain is built as a 32-bit binary.
(This is also described in the Code Sorcery G++ documentation)
Now, you might think that this would be a problem in a 64-bit environment. So what's the problem? The first answer is that there is no 32-bit version of the shared library that this file (32-bit) uses. 64-bit Ubuntu only installs 64-bit shared libraries by default. However, the error message is actually a bit misleading. It's supposed to say that a specific version of a shared library is missing.
The 32-bit versions of the libraries used by the arm-none-linux-gnuabi-gcc file are /lib32/ld-linux.so.2 (the 32-bit version of the ld.so dynamic linker/loader) and /lib32/libc.so.6 (the 32-bit version of the C library), both of which are in the libc6-i386 package (a collection of 32-bit libraries that run in an AMD64 environment). So let's install the libc6-i386 package.
# apt-get install libc6-i386
Now run ldd arm-none-linux-gnuabi-gcc and you should see the above. (Unfortunately, the ldd command for that file won't work until you install the 32-bit library. If it did work, it would have saved a lot of people a lot of trouble...)
* Reference Sites
Comments