Как узнать, нужна ли моей программе libgcc_s.so.1?Linux

Anonymous
Как узнать, нужна ли моей программе libgcc_s.so.1?

Сообщение Anonymous »

Контекст
У меня есть набор кода C/C++ для Linux, который мне нужно собрать на хост-компьютере Linux и запустить в специальном контейнерном решении. (чистый линукс). Чтобы иметь возможность запускать программу внутри моего контейнера, мне нужны все зависимости хоста программы внутри него.
Проблема
Чтобы разрешить все зависимости моей программы, я решил использовать ldd. Проблема в том, что я заметил, что среда выполнения libgcc_s.so.1 не указана в ldd как прямая зависимость. Для некоторых программ, использующих libpthread.so, во время выполнения требуется libgcc_s.so.1, в противном случае я получаю следующее: «libgcc_s.so.1 должен быть установлен, чтобы pthread_cancel мог работа".
ldd контент для моей программы:

Код: Выделить всё

linux-vdso.so.1 (0x0000fff7fceee000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fssf7f75000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faaf7d83000)
/lib64/ld-linux-x86-64.so.2 (0x00007fffddfcf000)
ldd-содержимое для libpthread.so:

Код: Выделить всё

linux-vdso.so.1 (0x00007avf7fce000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffbdd88000)
/lib64/ld-linux-x86-64.so.2
Мне пришлось добавить зависимость вручную внутри моего контейнера, чтобы моя программа работала.
Конечно, были и другие программы, которые не требовали любые библиотеки libgcc_s.so во время выполнения, и они без проблем запускались в моем контейнере.
Вопрос
Итак, вопрос в следующем как я могу определить, какой программе нужен libgcc_s.so, а какой нет? Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... gcc-s-so-1

Вернуться в «Linux»