0

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

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

谢谢!

4

1 回答 1

1

您最有可能使用libpq.dllPostgreSQL 主客户端库。您可以使用Dependency Walker确定它需要哪些库,但从内存中它只需要与 PostgreSQL bin 目录中的 openssl DLL 相同的目录,也许还有 zlib。我现在没有方便的 Windows 框可供检查。libpq其来自 PostgreSQLbin文件夹的直接依赖项应该与您的应用程序捆绑在与您的应用程序可执行文件相同的目录中。除了您的应用程序之外,它们不会被任何东西使用,并且不会与系统上其他地方安装的软件发生冲突。

我怀疑还有一个额外的依赖项可能会咬你:你需要在目标机器上安装适当版本的 Microsoft Visual Studio C++ Redistributable。这是由 PostgreSQL 安装程序自动安装的。如果您在应用程序中捆绑 libpq,您的安装程序也必须运行 redist 安装程序。所需的版本取决于您使用的是哪个 PostgreSQL 版本(您忽略了提及);可以通过依赖walker来确定。

于 2013-05-13T01:14:56.493 回答