У меня проблема со связыванием. Мне нужно связать с общей библиотекой libfoo.so
, которая зависит от функции read
, которую я хотел бы определить в файле read.c.
Я компилирую и связываю все вместе, но во время выполнения я получаю ошибку
/home/bar/src/libfoo.so: undefined symbol: sread.
нм сообщает, что символ определен
$nm baz | grep sread
00000000000022f8 t sread
но ldd сообщает, что символ не определен
$ldd -r baz | grep sread
undefined symbol: sread (/home/bar/src/libfoo.so)
Что дает? Есть ли некоторые проблемы с тем, что libfoo.so является общей библиотекой?