gpt4 book ai didi

linux -/usr/bin/ld : cannot find -lpq Issue

转载 作者:行者123 更新时间:2023-12-05 06:49:18 26 4
gpt4 key购买 nike

我的应用程序需要 libpq、paho-mqtt 库和 mqtt 代理。我已经在我的应用程序的单独文件夹中安装并构建了所有这些。当我尝试使用“make”命令构建我的应用程序时,我遇到了/usr/bin/ld: cannot find -lpq 错误。如何将我的应用程序目录链接到 libpq 库?

最佳答案

我遇到了这个错误,因为我还编译了 postgresql 和名为 libpq 的 postgresql 库。因此,当您编写 C 程序并使用 -lpq 选项编译它时,它可能无法运行,除非您更新 GCC 查找库的路径。

我提供的解决方案不是最好的,但我使用符号链接(symbolic link)了安装 postgresql 库的目录中的文件,通常是“usr/local/pgsql/lib”到“usr/include”

ln -s  /usr/local/pgsql/lib/* /usr/lib/

*您可能需要 root 权限才能执行上述命令,如果失败请尝试使用 sudo。这只是其中一种方法,更好的方法是使用变量“LIBRARY_PATH”更新 GCC 的链接器路径以包含 postgresql 库路径。您还可以在 GCC 中使用选项 -L 并指定您希望 GCC 查找链接库的目录。

这只有在你安装了整个 postgresql 包,或者你使用“make world”和“make install-world”从源代码编译 postgresql 时才有效,这使得库和文档。如果你还没有这样做,那么你可以安装名为 postgresql-libs 的包,这个方法取决于操作系统。对于 arch,有一个名为 postgresql-libs 的包,可以通过 Pacman 安装。对于 Ubuntu,我认为它叫做 libpq-dev。如果您已经编译了整个包,则无需通过包管理器再次安装它,因为库可以从源代码制作,您还应该知道,如果您从包安装的库之间存在版本不匹配,库可能会导致问题管理器和您从源代码编译的数据库二进制文件,所以在安装之前先看一下。然而,这可能并不总是发生。

关于linux -/usr/bin/ld : cannot find -lpq Issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66613592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com