Я сделал программу "Hello World", используя библиотеку pthread .Я скомпилирую его следующим простым способом:
$ gcc main.c -lpthread
Согласно документации gcc (раздел «Параметры связывания»):
-l библиотека [...] Компоновщик ищет в стандартном списке каталогов библиотеку, которая на самом деле является файлом с именем lib library .a.Затем компоновщик использует этот файл, как если бы он был указан точно по имени.[...]
Итак, я понимаю: gcc ищет libpthread.a .Учитывая конец .a, это должна быть статическая библиотека.
Однако это динамически связано:
$ ldd a.out
linux-vdso.so.1 => (0x00007fffde3c3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb345820000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb345456000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb345a3d000)
Чего мне не хватает?