Проблема с компиляцией 32-битного двоичного файла на 64-битной машине

8

Я пытаюсь скомпилировать c-программу как 32-битную двоичную, а не 64-битную. Я начал с добавления -m32 и получил некоторые ошибки. Поймав немного, я наткнулся на записку, чтобы установить ia32-libs. Запуск apt-get install ia32-libs привел к уведомлению, которое было уже установлено и в самой новой версии.

Существует цепочка библиотек, каждая из которых включает следующую, пока она не сработает:

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

Кажется, что в него включены 32-битные версии другого, включая /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

Что мне не хватает?

    
задан Matt 01.01.2012 в 09:34
источник

2 ответа

25

Ответ Lekensteyn противоречил множеству существующих пакетов для меня (на 64-битной однорисковой версии).

Вместо этого я сделал это, которое вытащило пакет libc6-dev-i386 :

apt-get install gcc-multilib
    
ответ дан alberge 21.02.2012 в 06:27
источник
7

ia32-libs просто содержит некоторые библиотеки совместимости еще не перенесены в Multi Arch. Для компиляции 32-разрядных библиотек вам необходимо установить 32-разрядные библиотеки и файлы разработки для C:

sudo apt-get install libc6-dev:i386

См. также: Значит ли функция многократного использования в 11.10 означает, что смерть силовой архитектуры установлена?

    
ответ дан Lekensteyn 01.01.2012 в 12:09