我们使用一些 C++ 代码创建了一个自定义共享库
g++ -c -fPIC customTest.cpp
g++ -shared -o libcustomTest.so customTest.o
我们把它放在项目目录中,在我们的makefile中,我们有默认目标
main: main.o
nvcc $^ -o main -lcustomTest -L.
这很好用。
问题是,我们想将我们的库移动到/usr/lib/
任意文件夹,并且仍然让程序找到它并使用它,但这并没有像我们希望的那样发生。
我们在我们创建的根目录中有一个名为libTest
的文件夹,在该文件夹中我们放置了我们的 library 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