为什么我的程序找不到“/usr/local/lib”中的库?

为什么我的程序找不到“/usr/local/lib”中的库?

我在 Ubuntu 10.10 上,刚刚将 opencv 升级到 2.4.2。

问题是,每次我打开一个新的 shell 并尝试编译和运行时,它都会编译但由于以下错误而无法运行:

./a.out: error while loading shared libraries: libopencv_calib3d.so.2.4: cannot open shared object file: No such file or directory

据我所知,这个文件位于 /usr/local/lib/!

我可以通过预先运行以下命令来使其运行:

export LD_LIBRARY_PATH=/usr/local/lib

我该如何修复此问题?

答案1

/usr/local/libLD_LIBRARY_PATH不在默认的 Ubuntu 路径中。您需要将其添加到环境变量的末尾/etc/environment。重启后新路径才会生效。

您还可以在 ~/.bashrc 中根据每个用户进行设置

示例(/etc/environment)

LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

示例(~/.bashrc)

export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"

相关内容