Итак, проблема началась, когда я недавно обновил свой 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++
и здесь хорошо прочитано здесь , в котором рассматриваются плюсы и минусы такого подхода. Но есть ли другие возможности?
В случае, если Ваша проблема еще не была решена, я могу предложить две опции кроме статического подключения:
LD_LIBRARY_PATH
и/или rpath
для Ваших двоичных файлов.