perseus писал(а):
Код: Выделить всё
maksim@maksim-MS-7519 ~/Progy/Go/src/hellodb $ ldd hellodb
linux-gate.so.1 => (0xb7745000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb770b000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb755c000)
/lib/ld-linux.so.2 (0xb7746000)
везде присутствуют четыре линуксовые библиотеки.
Ну и что?
libc.so.6 - это библиотека интерфейса
всех системных вызовов Linux,
ни одна программа в Linux на любом языке программирования (например C++ или Python) не стает работать при отсутствии этой библиотеки.
В принципе, можно в Golang статически собрать приложение, которое не будет использовать libc.so.6 (и Golang так и делает по умолчанию, но GCC Go не делает так) ... но это достаточно рискованное мероприятие, поскольку:
- при переносе на другую версию (ядра, системных вызовов) Linux такое приложение может пойти вразнос;
-
не бывает инсталляций ОС Linux, даже самых замысловатых, спецприменений и т.д., в которых не было бы интерфейсной библиотеки libc.so - без неё потеряется работоспособность 95% приложений и утилит Linux.
/lib/ld-linux.so.2 - это служебная библиотека динамической загрузки разделяемых DLL библиотек.