繁体   English   中英

在Windows 10上从Visual Studio 2015链接libpqxx

[英]Linking libpqxx from Visual Studio 2015 on Windows 10

我最近决定尝试将PostgreSQL用作我正在从事的某些C ++开发的数据库平台。 我决定将libpqxx用作项目的连接库,并很快发现从Windows 10机器上的VS 2015开始这将是艰巨的任务。

经过大量的咬和咬之后,我得到了libpqxx在Windows 10上进行编译。这使我拥有以下目录结构

根据libpqxx的文档,我还将libpq.dll的副本放置在项目的可执行目录中。 请注意:我在调试和发布版本中都这样做,试图同时构建它们,并最终得到相同的结果。

我看过的所有教程似乎都表明,链接该库后即可使用该库,只需简单地#include pqxx / pqxx,因此我建立了一个小型项目来完成该工作。 我收到错误:

严重错误C1083:无法打开包含文件:'pqxx / pqxx':没有此类文件或目录

尝试构建项目时。 我也尝试过将调试和发布版本都无效。

这是我的链接器设置的屏幕截图

是否有人对我如何能够从Visual Studio 2015链接和使用此库提出任何建议?

正如Sami Kuhmonen指出的那样,这实际上不是链接器错误,而是编译器错误。 我需要包含一个实际的标头,Visual Studio需要该标头。 将正确的文件夹(在我的情况下为C:\\ libpqxx \\ include)添加到Visual Studio的“其他包含目录”设置下(在c \\ C ++->常规下,按照drescherjm的建议),程序可以正常编译。

供将来参考:解决最初的问题后,我也确实遇到了未解决的外部链接器错误。 这是因为您需要确保还链接到ws2_32.lib和libpq.lib。 您还需要将libpq也依赖的其他一些DLL文件复制到libpqxx lib文件夹中。 在我的系统上,我相信它们是ssleay32.dll,libeay32.dll和libintl-8.dll。 这些文件位于PostgreSQL安装的根目录下。 在libpqxx的INSTALL.txt文件下提到了DLL步骤,但是我认为它表明DLL驻留在我实际找到它们的位置下的一个文件夹中。

我也面临同样的问题。 然后我意识到我正在将我的应用程序构建为32位。 我将目标更改为x64并成功编译

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM