【发布时间】:2019-06-08 18:11:27
【问题描述】:
我使用的是 Ubuntu 18.04、GCC 7.4
我创建了一个测试共享库,然后将其复制到 /usr/local/lib/ .so 文件是这样创建的:
gcc -Wall -fPIC -c src/Test.cpp -o obj/Test.o
gcc -shared -Wl,-soname,libhztest.so -o bin/libhztest.so obj/*.o
sudo cp bin/libhztest.so /usr/local/lib/hazeltest/
sudo chmod 777 /usr/local/lib/hazeltest/
然后我创建了一个测试应用程序并尝试运行它,我得到: 加载共享库时出错:libhztest.so:无法打开共享对象文件:没有这样的文件或目录
如果我确实导出了正确的 LD_LIBRARY_PATH 并且它可以工作,但我更喜欢使用 ldconfig
不幸的是,即使目录 /usr/local/lib/ 很好地包含在 /etc/ld.so.conf 中,ldconfig 似乎也没有链接我的库
谁能告诉我为什么这不起作用?谢谢
【问题讨论】:
-
在我的情况下,我错误地设置了 SONAME。通过查看
sudo ldconfig -v的输出找到它。
标签: gcc linker shared-libraries ubuntu-18.04