linux无法打开共享对象文件或目录,无法打开共享对象文件:没有这样的文件或目录的错误,而有文件...

我给这些命令:

gcc -fPIC -c *.c

gcc -shared -Wl,-rpath,/opt/lib -Wl,-soname,libctest.so.1 -o libctest.so.1.0 *.o

sudo mv libctest.so.1.0 /opt/lib

sudo ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so

sudo ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so.1

gcc -Wall -L/opt/lib main.c -lctest -o prog

命令没有给出错误。当我执行的二进制文件./prog它给./prog: error while loading shared libraries: libctest.so.1: cannot open shared object file: No such file or directory

但libctest.so.1是/opt/lib

lrwxrwxrwx 1 root root 24 Aug 18 17:06 libctest.so -> /opt/lib/libctest.so.1.0

lrwxrwxrwx 1 root root 24 Aug 18 17:06 libctest.so.1 -> /opt/lib/libctest.so.1.0

-rwxr-xr-x 1 user user 7064 Aug 18 17:05 libctest.so.1.0

而且ldd prog是

linux-vdso.so.1 (0x00007ffe0f559000)

libctest.so.1 => not found

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcd27fc6000)

/lib64/ld-linux-x86-64.so.2 (0x00007fcd28371000)

这样有什么不好?

我用debian 8.5和gcc 4.9.2

+2

您可以使用链接器'-rpath'选项来指定可执行文件搜索库的其他位置,而不是将它们移动。# –

+0

谢谢@gilez'rpath'解决了我的问题。如果您发布ypur评论作为答案,我会接受。 –

+0

我将我的评论扩展为一个答案,但正如我所说,我现在有点困惑。你仍然有问题,还是这一切工作? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值