Сборка с помощью clang для старых версий Ubuntu

Итак, проблема началась, когда я недавно обновил свой Ubuntu Vivid (15.04). Теперь clang-3.5 зависит от libstdc++-4.9 (вместо предыдущей версии 4.8), и мои скомпилированные программы не могут работать на Trusty (14.04):

./my_app: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./my_app)

Как на машине разработчика, так и на целевой машине g++ и gcc версия 4.8.4 установлена. Но в новой версии clang добавлена ​​зависимость от версии, требуемая от libstdc++6 до GLIBCXX_3.4.20, которая существует только в разработке, а не на целевой машине.

Есть идеи, как решить эту проблему?

ОБНОВЛЕНИЕ :

Здесь есть решение , предлагающее статически связать с libstdc++ и здесь хорошо прочитано здесь , в котором рассматриваются плюсы и минусы такого подхода. Но есть ли другие возможности?

0
задан 23 May 2017 в 15:39

1 ответ

В случае, если Ваша проблема еще не была решена, я могу предложить две опции кроме статического подключения:

  1. Пакет все библиотеки, требуемые с Вашими приложениями и настроенные LD_LIBRARY_PATH и/или rpath для Ваших двоичных файлов.
  2. при разработке приложений серверной стороны, поставляя их, поскольку изображения Докера, наследованные от Яркой Ubuntu, могут также быть опцией.
0
ответ дан 24 May 2017 в 01:39
  • 1
    Я отредактировал Ваш ответ, чтобы показать Вам, что я имел в виду. Простые списки команд редко считают приемлемыми ответами на и от StackExchange. Всегда включайте минимальное объяснение контекста. – David Foerster 2 December 2016 в 23:50

Другие вопросы по тегам:

Похожие вопросы: