PostgreSQL独立应用

PostgreSQL standalone application

本文关键字:应用 独立 PostgreSQL      更新时间:2023-10-16

我在Windows上构建PostgreSQL客户端时遇到了问题。实际上,它在编译器机器(编译应用程序的机器)上编译得很好,运行得很顺利,但在不同的计算机上(没有postgresql服务器),它会给我错误-它找不到*.dll。我通过手动将.dll添加到应用程序的文件夹来解决这个问题(我不认为这是处理这个问题的好方法,它只适用于32位机器)。

你能告诉我我应该链接哪些库或者我该如何处理这种情况吗?

谢谢!

您最有可能使用libpq.dll, PostgreSQL的主要客户端库。您可以使用Dependency Walker来确定它需要哪些库,但从内存来看,它只需要与PostgreSQL bin dir中相同目录下的openssl dll,也许还有zlib。我现在没有一个方便的Windows盒子来检查。libpq和它在PostgreSQL bin文件夹中的直接依赖关系应该与你的应用程序捆绑在同一个目录下,就像你的应用程序可执行文件一样。它们不会被你的应用程序以外的任何东西使用,也不会与系统上其他地方安装的软件产生冲突。

我怀疑有一个额外的依赖关系可能会困扰您:您需要在目标机器上安装适当版本的Microsoft Visual Studio c++ Redistributable。它由PostgreSQL安装程序自动安装。如果在应用程序中绑定libpq,那么安装程序也必须运行redist安装程序。所需的版本取决于你正在使用的PostgreSQL版本(你忽略了提到);