为什么我的程序找不到“/ 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 

我该如何解决这个问题?

/usr/local/lib不在默认的Ubuntu路径中。 您应该在/etc/environment中的LD_LIBRARY_PATH环境变量的末尾添加它。 重新启动并且新路径将生效。

您也可以在〜/ .bashrc中基于每个用户进行设置

示例(/ etc / environment)

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

示例(〜/ .bashrc)

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