Я сделал простую программу, которая использует общий объект, открывая его с помощью dlopen()
.Я также скомпилировал и связал общий объект, как показано ниже:
gcc -o libmylib.so libmylib.c -shared -fPIC -Wall
gcc -o program program.c -L. -lmylib -ldl -Wall
Когда я впервые попытался запустить программу, она сказала что-то вроде
cannot open libmylib.so: no such file or directory
, поэтому я искал в Интернетеобнаружил, что для запуска программы мне нужно скопировать общий объект в /lib/i386-linux-gnu/
.Я так и сделал, и это сработало, но затем я попытался сделать это другими способами, и поэтому я удалил libmylib.so
из каталога /lib/i3686-linux-gnu/
.Теперь, когда я пытаюсь запустить программу, она не показывает ошибок, но продолжает говорить Segmentation fault
.Понятно, что общего объекта нигде не найти, но как мне связать его, не копируя ничего?
Я использую Ubuntu 11.10