[SOLVED] Cross Complaition issue for bianry usages
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Currently i am doing C code compliation on X86_64 bit arch machine. But i found that a few binary for this is missing. But these binaries are present on arch i686 or MIPS.
When i use the binaies from i686 or MIPS to my X86_46 arch then it gives the error of Incomatibility.
So, is it possible to use those binary from arch i686 or MIPS to my X86_64 compilation.
Can you please explain me in brief "To use 686 binaries on X86_64 you need the 686 libraries that those binaries need."
How ca i proceed.
The linux kernel has support for 32 bit binaries built in. But the applications for 32 bit need to use libraries that are compiled for 32 bit. If the 32 bit libraries are not on the X86-64 system trying to run the 32 bit binary, then the binary won't run.
What you have to do is identify the missing libraries, and install them. Normally, these ought to be in the distributions package repository, but not installed by default. The 32 bit libraries are put in /lib (or /usr/lib), where the 64 bit libraries are in /lib64 (or /usr/lib64), thus preserving the separation. Many x86-64 system will already have some 32 bit libraries (some of the system tools use it, but that may be fading out).
The linux kernel has support for 32 bit binaries built in. But the applications for 32 bit need to use libraries that are compiled for 32 bit. If the 32 bit libraries are not on the X86-64 system trying to run the 32 bit binary, then the binary won't run.
What you have to do is identify the missing libraries, and install them. Normally, these ought to be in the distributions package repository, but not installed by default. The 32 bit libraries are put in /lib (or /usr/lib), where the 64 bit libraries are in /lib64 (or /usr/lib64), thus preserving the separation. Many x86-64 system will already have some 32 bit libraries (some of the system tools use it, but that may be fading out).
This is the correct answer. Package managers will list all dependencies when you install a 32bit package. If you install those, then you can run both 64bit and 32bit in GNU/Linux.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.