Невозможно собрать статическую библиотеку для arm6 / arm7, используя набор инструментов sourcery lite edition, C ++, Eclipse на Mac OS?

Я пытался разработать статическую библиотеку (.a) для arm6 / arm7, используя инструментальную цепочку ARM для C ++, Eclipse и Sourcery Lite, для Mac OS. Я успешно настроил (скомпилировал / собрал / настроил) исходный облегченный набор инструментов для Eclipse и смог собрать статическую библиотеку для arm9 без каких-либо ошибок. Каким-то образом он не компилируется / не собирается для arm6 / arm7. Не знаю почему? Я получаю следующую ошибку времени компиляции:
«выбранный процессор не поддерживает режим ARM` bx lr ‘», тот же код работает для arm9.

Но когда я проверяю встроенную статическую библиотеку, используя «lip -info», она говорит: «lipo: архив без спецификации архитектуры: libHelloCppLib.a (не могу определить архитектуру для нее)». Также я не могу использовать эту библиотеку в моем приложении для iPhone.
Может кто-нибудь помочь? что может быть не так в этом? Благодарю вас.

0

Решение

Sourcery CodeBench для Linux поддерживает armv4, armv5 и armv7. Настройка v5 должна хорошо работать на оборудовании v6 / v7.

Если вы используете версию не для Linux («EABI»), то у вас есть armv4, armv6-M и armv7. Я не уверен, что мультилиб «v6-M» подходит вам (это для микроконтроллеров); в этом случае вы могли бы сделать лучше с v4.

это возможный указать архитектуры, отличные от официально поддерживаемых (например, -march=armv6), и компилятор будет делать правильные вещи (вероятно), но поскольку он не поставляется с библиотеками поддержки, созданными для них (libgcc.a) ему придется использовать тот, который у него есть (скорее всего, v4), и вы может получить ошибки ссылки. Попробуй и посмотри 🙂

Кстати, если вы используете «Sourcery G ++», это не похоже на последнюю версию. Уже пару лет он называется «Sourcery CodeBench».

0

Другие решения

Других решений пока нет …