使用-L专门查找库时,在加载共享库时出现'错误'

Eth*_*man 4 gcc compiler-errors

我一直试图解决这个问题几个小时了.我正在使用gcc编译一些c文件.这些文件需要libpbc,所以我使用-L标志将gcc指向包含libpbc.so.1的目录.代码编译没有错误但是当我尝试运行它时,我收到以下错误消息:

./example.out:加载共享库时出错:libpbc.so.1:无法打开共享对象文件:没有这样的文件或目录

看看类似的问题,这个错误消息似乎表明gcc找不到libpbc.so.1.我知道gcc看到libpbc.so.1,因为当我将libpbc.so.1重命名为其他东西时,它无法编译.

我使用-L指向包含libpbc.so.1的目录.

不知道我可以采取哪些后续步骤来解决这个问题.会欣赏任何想法.这个错误信息到底意味着什么?

编辑

运行ldd example.out会导致:

linux-gate.so.1 =>  (0xb7fe3000)
libpbc.so.1 => not found
libgmp.so.3 => /usr/lib/libgmp.so.3 (0xb7f87000)
Run Code Online (Sandbox Code Playgroud)

Bob*_*Bob 6

ldd example.out
Run Code Online (Sandbox Code Playgroud)

这将提供有关动态链接的大量有用信息.更具体地说,您的问题很可能在于库的路径不在.

/etc/ld.so.conf
Run Code Online (Sandbox Code Playgroud)

请注意,如果您更新该文件,则必须运行

ldconfig -v
Run Code Online (Sandbox Code Playgroud)