[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Кросскомпиляция на машине x86_64 в i386



Интересует как "грязно" скомпилировать 32-х битный пакет на 64-х битной машине.
Через pbuilder собрать пакеты получилось, но вопрос остался.

Машина 64-х битная виртуалка.
У меня есть патченые библиотеки.
Я сделал dpkg-buildpackage -uc -us -B -ai386.
Одна собралась под 32. Но в конце ругнулась, что i486-gnu-strip не найден.
Я сделал симлинк на обычный стрип (он поддерживает x32) в /usr/local/bin.
Всё собралось. Установил.
Стал собирать вторую библиотеку.
Не линкуется с первой.
После долгих мучений, я выяснил, что первая библиотека, несмотря на указание архитектуры (и установки переменной ARCH=i386, если это на что-то влияет), собралась по 64-бита. Но пакет был с суффиксом i386.

Насколько я понимаю, 32-х битный большой проект, который использует CMake, вполне себе собирается под 32-бита (ломается при сборке после нескольких процентов, но видимо по другим причинам).
Т.е. дело здесь именно в системе сборки пакетов.

1. Почему?
2. Как собрать под 32 бита без pbuilder?


Reply to: