Я пытаюсь скомпилировать 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/ ...
Что мне не хватает?
Ответ на Lekensteyn противоречил множеству существующих пакетов для меня (на 64-битной одноричности).
Вместо этого я сделал это, которое вытащило пакет libc6-dev-i386:
apt-get install gcc-multilib
ia32-libs просто содержит некоторые библиотеки совместимости еще не перенесены в Multi Arch. Для компиляции 32-битных библиотек вам необходимо установить 32-разрядные библиотеки и файлы разработки для C:
sudo apt-get install libc6-dev:i386
См. Также: Много ли функция многочленов в 11.10 означает смерть установки силовой архитектуры ?