Может ли кто-нибудь дать представление или способ отладки, почему ltdl не загружает мою библиотеку? Как вы можете видеть из частичного выхода strace, он успешно открывает библиотеку, затем сообщает file not found
, а затем переходит к успешной загрузке другой библиотеки, построенной таким же образом. Как я могу отладить это? Я долгое время искал Google и не нашел полезных способов отладки.libtool, не загружающий библиотеку
open("server/modules/smtp.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("server/modules/smtp.so", O_RDONLY) = 3
getcwd("/home/david/Documents/workspace/dvnmon", 128) = 39
1327209900.751672 3602 Failed to open server/modules/smtp: file not found
open("server/modules/snmp.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("server/modules/snmp.so", O_RDONLY) = 3
getcwd("/home/david/Documents/workspace/dvnmon", 128) = 39
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/usr/lib64/libnetsnmp.so.15", O_RDONLY) = 3
open("/usr/lib64/libcrypto.so.1.0.0", O_RDONLY) = 3
open("/lib64/libz.so.1", O_RDONLY) = 3
1327209900.800507 3602 Plugin CSNMPMonitor interface version 0.1 loaded
Прохладный спасибо, что именно мне нужно. 18996: \t server/modules/smtp.so: ошибка: ошибка поиска символа: неопределенный символ: _ZTI11CSMTPServer (фатальный) Файлы .la не найдены, потому что Im символизирует все модели в одном каталоге и по какой-то причине символические ссылки на файлы .la не работают, но по-прежнему не удается загрузить smtp, если я укажу его на реальные файлы или скопирую их в этот каталог. Отсутствующий символ - один из моих, который связан с использованием полезных файлов .a, чтобы разбить программу и, очевидно, оставив этот символ в то время, когда родительская программа скомпилирована –