/lib/libstdc++.so.6: информация о версии недоступна - PullRequest
0 голосов
/ 22 октября 2019

Я использую минимальный Linux, настроенный с помощью Buildroot. Все работает нормально, пока я не запустил одно из моих приложений для кросс-сборки на цели, которое выдает ошибку ниже:

/lib/libstdc++.so.6: no version information available

Выход strings /lib/libstdc++.so.6 | grep GLIBCXX на TARGET Machine:

GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH

Вывод этой же команды на BUILD Machine:

GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_DEBUG_MESSAGE_LENGTH

Похоже, эта ошибка возникает при несовпадении версий glibcxx,Затем я попытался проверить опцию BR2_INSTALL_LIBSTDCPP в buildroot, но мы не можем изменить / обновить версию glibcxx.

Как решить эту проблему?

1 Ответ

1 голос
/ 22 октября 2019

Похоже, что ваша среда сборки настроена неправильно.

Если вы строите свою цель с помощью Buildroot, то вы должны собрать свое приложение, используя ту же цепочку инструментов и среду. Два варианта:

  • Сборка приложения из дерева (Buildroot)
  • Сборка приложения в виде пакета внутри Buildroot

Пожалуйста, обратитесь к Buildrootдокументация и это отличная презентация (PDF) . В частности, на страницах 27 и 34.

Особый случай будет, если вы имеете дело с SDK поставщика и набором инструментов. Затем вам нужно будет интегрировать набор инструментов вендора в Buildroot, который очень прост и документирован. В любом случае, результатом должно быть то, что вы используете один и тот же набор инструментов и заголовки для обоих.

...