PostgreSQL独立应用程序

时间:2013-05-12 18:01:53

标签: c++ c postgresql

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您最有可能使用主要的PostgreSQL客户端库libpq.dll。您可以使用Dependency Walker确定它需要哪些库,但是从内存中它只需要与PostgreSQL bin目录中的openssl DLL在同一目录中,也许需要zlib。我现在没有方便的Windows框。 libpq及其与PostgreSQL bin文件夹的直接依赖关系应该与应用程序捆绑在与应用程序可执行文件相同的目录中。它们不会被除应用程序之外的任何内容使用,也不会与系统上其他位置安装的软件发生冲突。

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