Кросс-компиляция для конкретной версии CXXABI и GLIBCXX - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу кросс-компилировать программное обеспечение для цели ARM, работающей на Linaro 14.04.

Когда я кросс-компилирую из моего Ubuntu 18.04, используя arm-linux-gnueabihf-g ++, и я пытаюсь запустить его на цели,Я получаю эту ошибку:

. / Main: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: версия `CXXABI_1.3.9 'не найдена (требуется ./main)

. / Main: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: версия `GLIBCXX_3.4.21 'не найдена (требуется ./main)

Моя проблема в том, что я не могу обновить какую-либо библиотеку на цели.

Поэтому мой вопрос, могу ли я указать конкретную версию GLIBC и CABI во время компиляции?

Большое спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

Вам нужно будет найти компилятор той же версии, в которую входила библиотека libstdc ++.

Эти версии ABI иногда (не всегда) увеличиваются при добавлении новых символов в libstdc ++.

В любом случае лучше всего всегда устанавливать одну и ту же версию ОС на свой компьютер.Это гарантированно будет иметь ту же версию набора инструментов (хотя кросс-компиляторы могут там немного отличаться).

Старый ответ следует.Для GCC-4 нет пакета, поэтому вам придется установить более старую версию Ubuntu.


Похоже, что Ubuntu 18.04 имеет несколько версий GCC: https://packages.ubuntu.com/search?keywords=arm-linux-gnueabihf&searchon=names&suite=bionic&section=all

Я быпопробуйте новейший, который работает для вашей цели.Вы также можете сравнить версию libstdc ++. So.XYZ so и убедиться, что вы используете версию GCC с libstdc ++, поэтому версия максимальная на вашей целевой машине.

Если вам интересно, файл, определяющий этиВерсии символов можно найти здесь: https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/config/abi/pre/gnu.ver.

Глядя дальше в этом файле, я обнаружил этот коммит: https://github.com/gcc-mirror/gcc/commit/c19175577e1cbf749590889441ad5dd03bb2c9d7 Он добавляет версию символов, которую вы пропустили, и Github помечает ее как присутствующуюв GCC 5. К сожалению, в Ubuntu 18.04 нет набора инструментов до 5 GCC.

...