Мы создали пользовательскую разделяемую библиотеку из некоторого кода C ++, используя
g++ -c -fPIC customTest.cpp
g++ -shared -o libcustomTest.so customTest.o
И мы поместили ее в каталог проекта, и в нашем make-файле у нас по умолчанию есть цель
main: main.o
nvcc $^ -o main -lcustomTest -L.
И это прекрасно работает.
Проблема в том, что мы хотели бы переместить нашу библиотеку в /usr/lib/
или в любую произвольную папку и при этом программа должна найти ее и использовать, но этого не произошломы хотим, чтобы это было.
В нашем корне есть папка, которую мы создали, которая называется libTest
, и в эту папку мы помещаем нашу библиотеку customTest.so.0.1
.Затем мы отредактировали ld.so.conf
в /etc/
, чтобы в нем было /libTest
.
Затем мы пошли в каталог наших программных файлов и запустили ldconfig -v
, который выглядел так, нобольше
libpanel.so.5 -> libpanel.so.5.9
libt1.so.5 -> libt1.so.5.1.2
libbluetooth.so.3 -> libbluetooth.so.3.11.4
libgck-1.so.0 -> libgck-1.so.0.0.0
libdca.so.0 -> libdca.so.0.0.0
создано много ссылок, а что нет, но libcustomTest.so
не является одной из них.Не удивительно, что когда мы запускаем make, пользовательская библиотека не может быть найдена.
Может ли кто-нибудь указать нам правильное направление с тем, что мы делаем неправильно?Кстати мы на Ubuntu 11.10