很显然这是因为在链接时候没有库文件所导致的,那么就要相应的编译个对应的动态库。下面我们就对这个问题的解决流程做一个简单介绍。
1、全局find下这个动态库是否存在。
2、利用lld查看运行的可执行文件的链接关系。
例如:/opt/postgresql/postgresql/lib # ldd /opt/postgresql/postgresql/bin/createdb
linux-gate.so.1 => (0x77f2f000)
libpq.so.5 => not found
libz.so.1 => /usr/lib/libz.so.1 (0x00698000)
libreadline.so.5 => /usr/lib/libreadline.so.5 (0x037f1000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x004e0000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x03006000)
libdl.so.2 => /lib/libdl.so.2 (0x00650000)
libm.so.6 => /lib/libm.so.6 (0x00656000)
libc.so.6 => /lib/libc.so.6 (0x00509000)
/lib/ld-linux.so.2 (0x004e6000)
3、如果没有该so的话,则需要重新编译一套动态库。如果有so的话则
配置vi /etc/ld.so.conf
加入 比bin的路径
4、如果要编译自己的动态库可参考如何编译动态库。
如何编译自己的动态库