Re: Кросс-компиляторы для Debian
Dmitrii Kashin -> debian-russian@lists.debian.org @ Sun, 15 Feb 2015 20:08:03 +0300:
DK> Простите мне мою неопытность, но в чём нынче с этим проблема? Насколько
DK> я понимаю, gcc может собирать бинарники любой архитектуры при условии
DK> наличия заголовочных файлов и библиотек соответствующей архитектуры.
DK> С учётом существования multiarch, мне казалось, что это не должно быть
DK> проблемой. Так вот, разве нельзя просто добавить через dpkg
DK> дополнительную архитектуру (arm какой-нибудь) и установить необходимых
DK> devel-библиотек?
DK> Это представление сильно отличается от реальности?
Довольно сильно.
multiarch - это про _выполнение_ программ, собранных под другую
архитектуру. Однако, совместимую по процессорным командам. Т.е. на
amd64 можно выполнять i386, а на armhf - armel. Для multiarch нужно
ставить не devel-, а run-библиотеки, а на собственно исполнимые файлы
программ multiarch не распространяется от слова "совсем". Нельзя
поставить в параллель gcc-i386 и gcc-amd64.
Кросс-сборка к multiarch не имеет ни малейшего отношения, и требует
наличия gcc и binutils, умеющих работать с целевой архитектурой, стоящих
рядом (а следовательно, под другими именами) с "родными". За
devel-библиотеки так вот сходу не поручусь. С виду они в дистрибутиве
под конкретную архитектуру, но нужны ли аналоги под целевую архитектуру
для кросс-сборки, я не уверен. Возможно, не нужны, хотя тут тоже
возможна засада - некоторые библиотеки под разные архитектуры собираются
с разной функциональностью. Хедера (входящие в dev-пакеты наряду с
dev-библиотеками) - общие. Хотя тут тоже возможна аналогичная засада.
Reply to: