今天晚上来一台虚拟机上部署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
来查找程序所需要的动态链接库。