h323plus的simple执行过程中遇到的问题

经过./configure  ->  make  (->make install)这样一个过程之后,我们得到了一个执行文件。

但是这一切都还没结束,一些大型源码的执行文件一般会依赖于很多动态库(也就是linux中的.so结尾的文件, .a结尾的为静态库),这些动态库有可能不在,但编译依然能通过,而导致的后果当然是执行文件无法正常运行,一般会报错说cannot find ***.so。

./simph323: error while loading shared libraries: libh323_linux_arm_.so.1.26.9: cannot open shared object file: No such file or directory

这种情况下,我们需要找到可执行文件所依赖而又缺失的动态库(.so),具体的方法如下:

首先需要找到目标可执行文件依赖于什么库,缺失了什么库。我们可以使用以下命令:

$ ldd 目标可执行文件

如图所示,所有依赖的动态库都会列出来,而找不到的动态库有哪些都一目了然。得到动态库的名称之后,我们需要把它加载到环境变量中:

方法1、将这个动态库的绝对路径添加到 /etc/ld.so.conf中

$sudo vim  /etc/ld.so.conf                  (按照格式)

$sudo ldconfig       

即可生效。

对于动态库的绝对路径如何寻找的问题,

如果ubuntu是图形界面版的话,可以直接用files的文件搜索功能

这样就能找到这个动态库所在的目录了。

如果没有图形界面,可以用find命令:

$find -name  ***.so

也可得到绝对路径。

方法2、添加动态库路径到环境变量。

也是基于方法一得到的绝对路径实现的

export LD_LIBRARY_PATH=/home/linux/h323plus/h323core/lib/:$LD_LIBRARY_PATH

也可以写到/etc/profile中。

操作完可以用echo $LD_LIBRARY_PATH查看。

方法3、待更。。。

猜你喜欢

转载自blog.csdn.net/weixin_40728015/article/details/81211164