4
我一直试图解决这个问题几个小时了。 我正在使用gcc编译一些c文件。这些文件需要libpbc,因此我使用-L标志将gcc指向包含libpbc.so.1的目录。该代码在编译时没有错误但当我尝试运行它,我收到以下错误信息:当使用-L专门查找库时出现“加载共享库时出错”
./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)
我需要根来更新该文件?我想静态链接这个库。 – 2010-04-28 02:17:44
ls -l /etc/ld.so.conf查看其权限。它通常只能由root写入。 如果你想静态链接库,这是一个完全不同的话题。我的文章中的一切都是关于动态链接的。 如果您想要变为静态,请将-static参数用于gcc。有许多陷阱伴随着静态链接,因为它并不总是做你认为它正在做的事情。 :) – Bob 2010-04-28 02:22:36
是的,静态链接似乎已经打破了一切=( – 2010-04-28 02:45:33