LIBRARY_PATH和LD_LIBRARY_PATH

Posted kakawater

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LIBRARY_PATH和LD_LIBRARY_PATH相关的知识,希望对你有一定的参考价值。

今天晚上来一台虚拟机上部署KakaIM时,由于整个项目使用postgreSQL作为后端数据库,因此需要链接libpq.so,链接方式为静态链接

由于我在postgre-client时,只将libpq.so所属的目录添加到LD_LIBRARY_PATH环境变量,而没有添加到LIBRARY_PATH环境变量,造成gcc在编译时无法找到libpq.so

/usr/bin/ld: cannot find -lpq
collect2: error: ld returned 1 exit status

后面我将libpq.so所属的目录添加到LIBRARY_PATH之后就成功编译了。

  • LIBRARY_PATH
    gcc编译器使用环境变量LIBRARY_PATH来查找程序所需要链接的静态库。

  • LD_LIBRARY_PATH
    编译好的程序运行的时候,根据LD_LIBRARY_PATH来查找程序所需要的动态链接库。

以上是关于LIBRARY_PATH和LD_LIBRARY_PATH的主要内容,如果未能解决你的问题,请参考以下文章

LIBRARY_PATH和LD_LIBRARY_PATH

LD_LIBRARY_PATH 与 LIBRARY_PATH

Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

LIBRARY_PATH是编译时候用的,LD_LIBRARY_PATH是程序运行是使用的

Linux中PATH LIBRARY_PATH LD_LIBRARY_PATH和ROS_PACKAGE_PATH

如何在配置中为安装在 Windows 机器上的 ImageMagick 库设置 library_path