У меня есть libcommon.so в каталоге/usr/local/lib, и я связываю эту библиотеку с моей программой./usr/bin/ld: не удается найти общую библиотеку
GCC -o тест test_prog.c -L/USR/местные/Библиотека -llibcommon.so
и я попытался это тоже
GCC -o тест test_prog.c -L/USR/местные/Библиотека -llibcommon
Это дает
/USR/бен/л.д.: не может найти -llibcommon.so
collect2: л.д. возвращается 1 выход статус
Он есть:
$ locate libcommon.so
/usr/local/lib/libcommon.so
/usr/local/lib/libcommon.so.0
/usr/local/lib/libcommon.so.0.1.0
$
я получаю это после того, как изменения в соответствии с Вами/USR/местные/Библиотека /libcommon.so.0: не мог читать символы: Недопустимая операция collect2: л.д. возвращается статус 1 выхода – user2732944
Теперь у вас другая проблема. Линкер находит библиотеку, но не может понять, что в ней. Я предлагаю начать с запуска 'file /usr/lib/libcommon.so/lib/libc.so' и посмотреть, есть ли очевидная разница между типами файлов. Возможно, вам придется следовать символическим ссылкам (поэтому вам может потребоваться указать другие имена в командной строке 'file'. Если есть большая разница, возможно, вы установили неверный файл (ы) - или, возможно, системный администратор сделал это , –