В Linux я построил два бинарных файла, A и B, на одной машине.Я переношу их на другую машину с чуть более старой установленной libstdc ++.Когда я запускаю ldd -v в двоичном ИИ, получим следующее:
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
Когда я запусту ldd -v в двоичном БИ, получим следующее:
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => not found
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
Обратите внимание на зависимость для GLIBCXX_3.4.15:не найдено.Это имеет смысл, потому что установленный libstdc ++ имеет поддержку только до GLIBCXX_3.4.10.
Вопрос в следующем: каким механизмом ldd определяет, что двоичный файл B зависит от GLIBCXX_3.4.15?Что еще более важно, как мне определить, какой код вызывает эту зависимость?