最近,我决定试用PostgreSQL作为我正在开发的一些C++的数据库平台。我决定使用libpqxx作为我的项目的连接库,并很快发现从VS 2015到Windows 10机器,这将是一场艰难的战斗。
经过多次咬牙和咬指甲之后,我在Windows 10上编译了libpqxx。

根据libpqxx的文档,我还将libpq.dll的副本放在项目的可执行目录中。请注意:我在调试和发布版本时都这样做过,试图同时构建这两种版本,并得到了相同的结果。
我看到的所有教程似乎都表明,库可以在链接之后使用,只需简单地包括pqxx/pqxx,所以我设置了一个小项目来完成这个任务。我收到错误:
致命错误C1083:无法打开包含文件:'pqxx/pqxx':没有这样的文件或目录
当试图构建项目时。我也尝试过这将调试和发布构建,但没有效果。
这是我的链接器设置的屏幕截图。
有人对我如何链接和使用Visual 2015中的这个库有任何建议吗?
发布于 2016-01-04 01:42:16
正如所指出的,这实际上不是链接器错误,而是编译器错误。我需要包含一个实际的标题,Visual需要能够找到这个标题。在将正确的文件夹(在本例中为C:\libpqxx\ include )添加到Visual的“附加包含目录”设置中后,根据C\C++ -> General的建议,程序编译得很好。
供以后参考:在解决初始问题后,我也遇到了未解决的外部链接器错误。这是因为您需要确保也链接到ws2_32.lib和libpq.lib。您还需要将libpq还依赖的其他DLL文件复制到libpqxx lib文件夹中。在我的系统中,我相信它们是ssleay32.dll、libeay32.dll和libintl-8.dll。这些文件位于PostgreSQL安装的根目录下。DLL步骤在libpqxx的INSTALL.txt文件中提到,但是我相信它表明DLL位于我实际找到它们的文件夹下。
发布于 2016-09-12 10:35:54
我也面临着同样的问题。然后我意识到我正在构建,我的应用程序是32位的。我将目标更改为x64,并成功地编译了
https://stackoverflow.com/questions/34579664
复制相似问题