две общие библиотеки liba.so и libb.so. liba.so использует libb.so. Все c файлы скомпилированы с помощью -fPIC. Связывание использует -shared. Когда мы вызываем dlopen на liba.so, он не может найти символы в libb.so... мы получаем ошибку "undefined". Мы можем dlopen libb.so без ошибок. Мы знаем, что liba находит libb, потому что мы не получаем ошибку, не найденную в файле. Мы удалили файл, не найденный при удалении libb.so. Мы попробовали -любили и не повезло.
Любые идеи????
О да. gcc 4.1.2
update: мы используем rpath при связывании liba, чтобы он мог найти libb.
ldd liba.so возвращает:
linux-gate.so.1 => (0xffffe000)
libb.so => ./libb.so (0xf6ef9000) <-------- LIBB
libutil.so.1 => /lib/libutil.so.1 (0xf6ef5000)
libdl.so.2 => /lib/libdl.so.2 (0xf6ef1000)
libm.so.6 => /lib/libm.so.6 (0xf6ec9000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf6eb1000)
librt.so.1 => /lib/librt.so.1 (0xf6ea8000)
libc.so.6 => /lib/libc.so.6 (0xf6d62000)
/lib/ld-linux.so.2 (0x007d0000)
Это значит, что в конце libb нет. #