how to find and install 32-bit X11 libraries on 64-bit ubuntu 10.04
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
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.
how to find and install 32-bit X11 libraries on 64-bit ubuntu 10.04
I just created a new 64-bit ubuntu 10.04 system with codeblocks 10.05 to continue developing a 3D graphics engine/server that I put aside about 1 year ago. After some futzing, I can get simple new test projects to compile and execute, but I cannot get my 3D engine to compile.
The problem is the following. The compiler appears to compile all the files successfully, but then stops and issues the following error message:
ld cannot find -lX11
I only had the 32-bit implementation of my code working when I stopped developing a year ago, so I need to get that working first.
As far as I can tell, the problem is this. I installed the xorg-dev package, which installed the 64-bit include files and library files, but not the 32-bit include files and library files. Try as I might, I cannot find any separate package that includes the 32-bit include files and library files. Actually, I assume a single set of include files will support both 32-bit and 64-bit development... but I'm pretty sure I do need to install a set of 32-bit libraries on my computer to compile this application. I did manage to find and install both 32-bit and 64-bit versions of the OpenGL libraries, but I can't find the X11 files.
Is this probably my problem? If so, how do I download and install those 32-bit libraries on my 64-bit ubuntu 10.04 system?
Have you tried compiling it after installing the xorg-dev package? It may just compile properly with only those libraries. You might also want to try and get ia32-dev (those are some x86 specific dev libs) those might help you.
Have you tried compiling it after installing the xorg-dev package? It may just compile properly with only those libraries. You might also want to try and get ia32-dev (those are some x86 specific dev libs) those might help you.
I don't see ia32-dev package listed, but I do already have the ia32-libs package installed if that's what you meant to say.
Also, I have a backup of the old /usr/lib, /usr/lib32, /usr/lib64 directories from when I was developing this application about 1 year ago, and there is a separate set of libX11.so libraries in that /usr/lib32 directory. Unfortunately, I'm sure they're far out of date by now... and I have no idea where I found and installed them originally (about 2 years ago).
I don't see anything new to me in that webpage. I do see a reference to this getlibs script, but I haven't been able to find it or understand whether it even works for libraries (without an executable). Actually I do have an old backup executable compiled 1+ year ago, which maybe I can copy to my system.
Hey! Do any of you have 32-bit ubuntu 10.04 installed (not 64-bit). If so, presumably the libX11.so.* files installed in your /usr/lib directory are just what I need. Perhaps you could post them here or send me a PM and I'll give you an email address to send them to me.
Hi,
Are you sure that the library wasn't installed with the ia32-libs? I just had a look at my /usr/lib32 and it does have libx11.so... It probably can't be found because a quick look at /etc/ldconf.so shows that the linker isn't set up to search the lib32 directory. I gues that means you need to pass the full path explicitly.
By the way, all packages can be searched and downloaded manually from http://packages.ubuntu.com/
There is a search box at the bottom of the page.
The .so file can be found in the libx11-6 package (the static library is in the libx11-dev package). For 32 bit jaunty, that would be here: http://packages.ubuntu.com/jaunty/libx11-6
It can be installed with:
sudo dpkg -i --force-architecture libx11*
but you probably shouldn't do that, for two reasons. First, if you extract the contents of the .deb package, you will find that it is configured to install to /usr/lib/, which would overwrite the 64 bit version. I guess you could set a different prefix in the .pc file (in the package-config directory) but that wouldn't solve the second problem: the package has multiple dependencies that you would have to download (and edit), too. If the library and the headers is all you need, it is probably better to extract and copy them manually and to call them with their full path.
Thanks. Well, I'm not entirely sure when it appeared, but it is on my system now. Perhaps I was mistaken about having installed ia32-libs previously. Maybe I had installed ia32-dev but not ia32-libs? It sure would be nice if some utility existed that lets you specify a file... and tells you what package it is in. Of course, if the files don't contain symbolic links, it is impossible to know for sure exactly what the file might be - for example libX11.so.6.3.22.11.7 when all you know is you want the libX11.so library. I guess support for wildcard characters would solve that problem.
I found it necessary to make oodles of symbolic links for the various libraries my application needs to access. Maybe this is unavoidable, but it seems rather a hassle.
Install it, run apt-file update to create the database and then you can perform multiple types of search on the online repositories. The one you would use to find the package containing libX11.so is:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.