32

I'm trying to compile a c program as a 32 bit binary instead of 64 bit. I started by just adding -m32 and got some errors. Googling around a little I came across a note to install ia32-libs. Running apt-get install ia32-libs resulted in a notification taht it was already installed and at the newest version.

There is a chain of libraries each one including the next until it fails:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

It seems to be including 32 bit versions of the other includes /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

What am I missing?

3 Answers 3

73

Lekensteyn's answer conflicted with lots of existing packages for me (on 64-bit oneiric).

I instead did this, which pulled in the libc6-dev-i386 package:

sudo apt-get install gcc-multilib
0
7

ia32-libs just contains some compatibility libraries haven't been migrated yet to Multi Arch. For compiling 32-bit libraries, you need to install the 32-bit libraries and development files for C:

sudo apt-get install libc6-dev:i386

See also: Does the multiarch feature in 11.10 mean the death of force--architecture installs?

3
  • 1
    Installing libc6-dev:i386 insisted on removing the entire gnu compiler suite (which gave me a little heart attack) but after using sudo apt-get install build-essential everything worked perfectly.
    – Matt
    Jan 1, 2012 at 21:14
  • For me, it also uninstalled nvidia-current... reinstalled with no problems though.
    – Jeff
    May 12, 2012 at 2:48
  • 1
    Note that the option given by alberge seems better in that it won't remove tons of other things for installing the 32-bit libraries. Sep 7, 2012 at 18:53
0

For those from future, this is a ten-year old question. Sadly none of the above solutions work for me.

Here is a similar but rather new one How to compile 32-bit executable on 64 bit system, and the solution of this fresh post does solve my problem.

Just install this:

sudo apt install libc6-dev-i386

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.