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