В общем, вам необходимо предоставить компилятору среду, похожую на целевую среду исполнения. В зависимости от того, насколько схожая или другая среда относится к другой, это может быть простым или сложным.
Предполагая, что компилятор GCC, вы должны добавить только -m32
в свои флаговые компиляции, чтобы заставить их работать на 32-битной системе; если все остальные вещи равны. Убедитесь, что в вашей системе установлены необходимые 32-разрядные зависимости (это означает, что базовые библиотеки C и 32-разрядная версия для каждой библиотеки связаны с вашими приложениями).
Поскольку вы только компилируете для x86 на 64-битном узле, путь к этому обычно прост. Я рекомендовал бы, однако создание выделенной среде, которую можно использовать для компиляции - как правило, своего рода chroot
(см pbuilder, schroot, CHROOT, Debootstrap и другие).
Да. Вы даже можете скомпилировать программы, которые запускаются на вашем смартфоне, или даже на микроволновой печи (если она достаточно умна). Он называется «кросс-компиляция». –