运行Postgres C客户端时libpq.so.5共享库加载失败求助
解决libpq.so.5运行时找不到的问题
你的问题出在动态链接器在运行时找不到libpq的路径——编译时用-L指定了链接阶段的库位置,但系统的动态链接器默认不会自动扫描/usr/local/pgsql/lib这个目录。下面是几种解决方式:
临时生效(当前终端会话)
直接在终端执行以下命令,设置动态链接器的搜索路径后即可运行程序:
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH ./connect
永久生效(仅当前用户)
将环境变量配置写入shell配置文件,比如~/.bashrc或~/.profile:
- 打开配置文件:
nano ~/.bashrc
- 在文件末尾添加一行:
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
- 让配置立即生效:
source ~/.bashrc
系统级永久生效(所有用户)
通过配置系统动态链接器缓存实现全局生效:
- 创建PostgreSQL专属配置文件:
sudo nano /etc/ld.so.conf.d/postgresql.conf
- 在文件中添加一行路径:
/usr/local/pgsql/lib
- 更新动态链接器缓存:
sudo ldconfig
完成以上任意一种配置后,动态链接器就能找到libpq.so.5,程序即可正常运行。
内容的提问来源于stack exchange,提问作者Lorenzo Cesana
相关产品推荐
相关产品推荐

