Я пытаюсь настроить Boost 1.42 в нашей системе. Мне нужен Boost для компиляции для обычной архитектуры x86 с gcc, и мне нужна кросс-компиляция для процессора ARM Texas Instruments.
Набор инструментов для процессора ARM основан на gcc. Инструменты типа gcc, ar, ranlib имеют префикс arm_v5t_le-. Документация о кросс-компиляции несколько ограничена. Вот что я сделал:
Я добавил следующее в файл user-config.jam: using gcc : arm : arm_v5t_le-g++ ;
Bjam вызывается из нашего файла Makefile следующим образом: bjam toolset=gcc-arm --toolset-root=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin <some other options>
для компиляции для процессора ARM и следующим образом: bjam toolset=gcc <some other options>
для процессора x86. Опция --toolset-root упоминается здесь .
Я столкнулся со следующей проблемой:
Когда я создаю наше приложение для процессора ARM, я получаю следующую ошибку компоновщика: libboost_system-mt.a: не удалось прочитать символы: в архиве нет индекса; запустить ranlib, чтобы добавить один. После того, как я запустил arm_v5t_le-ranlib в архиве, он связывается без проблем. Я предполагаю, что bjam использует ar вместо arm-v5t_le-ar. Как мне сказать bjam, какой архиватор он должен использовать?
В списке рассылки было сказано, что он также указывает <archiver>
в user-config.jam, но, к сожалению, он, похоже, не работает. Я получаю ту же ошибку компоновщика.
Спасибо.