Насколько я понимаю, компоновщик ищет ссылку в неправильной библиотеке pthread
Ваше понимание неверно .
/usr/lib/libpthread.so
- это скрипт компоновщика , который связывает вашу программу с libpthread.so.0
и libpthread_nonshared.a
. libpthread.so.0
является (должно быть) символической ссылкой, скорее всего, libpthread-2.3.4.so
.
Вероятно, в вашей системе установлено несколько версий libpthread-2.3.4.so
: одна в /lib/i686
, другая в /lib/tls
, возможно, также одна в /lib
. Какой из них используется во время выполнения, зависит от вашего оборудования и вашего ядра.
Что печатают следующие команды?
find /lib -name 'libpthread.so.0' | xargs nm -A | grep pthread_setaffinity_np
ldd /usr/bin/date