我已经从源代码构建了一些库,之后的文件make install在/usr/local/lib
例如,在我的情况下,我有libodb-2.2.so这个目录中的文件。
但是,当我启动与 链接的可执行文件时,libodb出现错误:加载共享库时出错:libodb-2.2.so: cannont open shared object file: No such file or directory.
这是否意味着我没有正确构建我的可执行文件?或者我应该向系统表明文件夹中可能还有一些有趣的库/usr/local/lib?
我使用的是 Ubuntu 12.04,Linux 内核 3.2.0-38-generic。
Flu*_*lup 78
对于当前会话,您可以
导出 LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
或者,以使更改永久您可以添加/usr/local/lib到/etc/ld.so.conf(或东西,它包括)并运行ldconfig为根。
如果您仍然遇到问题,运行ldd [executable name]将向您显示它正在尝试查找的库以及无法找到的库。
gol*_*cks 50
如果您ldconfig在构建库后已经运行,请继续阅读。如果没有,请先阅读 ldconfig。
/usr/local/lib可能不在 ldconfig 使用的库路径中。你可以这样做:
ldconfig /usr/local/lib
Run Code Online (Sandbox Code Playgroud)
并且这些东西应该添加到链接器缓存中,但正确添加路径可能更好。确保你有一个/etc/ld.so.conf.d目录。如果是这样,请添加一个文件(称为“usr-local.conf”或其他名称),并在其中添加一行:
/usr/local/lib
Run Code Online (Sandbox Code Playgroud)
现在运行ldconfig。如果您没有 ld.so.conf.d 目录,您应该有一个/etc/ld.so.conf 文件,您可以将该行添加到它的末尾。
| 归档时间: |
|
| 查看次数: |
165252 次 |
| 最近记录: |