g ++ ссылка на разделяемую библиотеку не компилируется

У меня есть эти файлы общей библиотеки в / usr / local / lib:

libopenbabel.so
libopenbabel.so.4
libopenbabel.so.4.0.2

libopenbabel.so — это ссылка на libopenbabel.so.4, а libopenbabel.so.4 — это ссылка на libopenbabel.so.4.0.2

когда я компилирую свой файл с этой командой:

g++ test.cpp -L/usr/local/lib -lopenbabel

и затем попробуйте запустить a.out, я получаю эту ошибку:

./a.out: error while loading shared libraries: libopenbabel.so.4: cannot open shared object file: No such file or directory

Подразумевается, что компилятор находит libopenbabel.so, но сталкивается с ошибкой при переходе по той ссылке на libopenbabel.so.4, которая находится в том же каталоге. Любые идеи о том, почему это происходит / как я могу это исправить?

Вывод ls -l в / usr / local / lib:

total 33772
drwxr-xr-x  7 root root      4096 Mar 22 01:24 .
drwxr-xr-x 10 root root      4096 Aug 20  2013 ..
drwxr-xr-x  3 root root      4096 Mar 21 23:45 cmake
lrwxrwxrwx  1 root root        13 Mar 21 23:45 libinchi.so -> libinchi.so.0
lrwxrwxrwx  1 root root        17 Mar 21 23:45 libinchi.so.0 -> libinchi.so.0.4.1
-rw-r--r--  1 root root   3315565 Mar 22 01:04 libinchi.so.0.4.1
lrwxrwxrwx  1 root root        17 Mar 21 23:45 libopenbabel.so -> libopenbabel.so.4
lrwxrwxrwx  1 root root        21 Mar 21 23:45 libopenbabel.so.4 -> libopenbabel.so.4.0.2
-rw-r--r--  1 root root  31232420 Mar 22 01:04 libopenbabel.so.4.0.2
drwxr-xr-x  3 root root      4096 Mar 21 23:45 openbabel
drwxr-xr-x  2 root root      4096 Mar 22 01:24 pkgconfig
drwxrwsr-x  4 root staff     4096 Mar  3 12:57 python2.7
drwxrwsr-x  3 root staff     4096 Dec 22 18:25 python3.2

2

Решение

Либо установите свой LD_LIBRARY_PATH переменная окружения, чтобы содержать /usr/local/lib или добавить /usr/local/lib в /etc/ld.so.conf и беги ldconfig как корень.

Также беги ldd a.out чтобы убедиться, что динамическое связывание хорошо работает в вашем приложении.

Читать LD-Linux (8), LDCONFIG (8), LDD (1)

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]