c++ - 从 Windows 10 上的 Visual Studio 2015 链接 libpqxx

标签 c++ visual-studio postgresql

我最近决定试用 PostgreSQL 作为我正在进行的一些 C++ 开发的数据库平台。我决定使用 libpqxx 作为我的项目的连接库,并很快发现在 Windows 10 机器上从 VS 2015 开始这将是一场艰苦的战斗。

经过一番咬牙切齿的努力,我终于得到了 libpqxx,可以在 Windows 10 上进行编译。 这给我留下了以下目录结构

根据 libpqxx 的文档,我还在项目的可执行目录中放置了 libpq.dll 的拷贝。请注意:我已经为调试和发布版本完成了此操作,并尝试构建两者,但最终得到了相同的结果。

我看到的所有教程似乎都表明可以在链接后使用库并简单地#including pqxx/pqxx,所以我建立了一个小项目来做到这一点。我收到错误:

fatal error C1083: Cannot open include file: 'pqxx/pqxx': No such file or directory

尝试构建项目时。我也试过这将同时调试和发布构建,但无济于事。

这是一个screenshot我的链接器设置。

有人对我如何从 Visual Studio 2015 链接和使用此库有任何建议吗?

最佳答案

正如 Sami Kuhmonen 所指出的,这实际上不是链接器错误,而是编译器错误。我需要包含一个实际的 header ,Visual Studio 需要能够找到它。将正确的文件夹(在我的例子中为 C:\libpqxx\include)添加到 C\C++ 下的 Visual Studio 的“附加包含目录”设置后 -> 根据 drescherjm 的建议,程序编译正常。

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

关于c++ - 从 Windows 10 上的 Visual Studio 2015 链接 libpqxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34579664/

相关文章:

ruby-on-rails - Rails where, sort and combining 同一张表

SQL - 如果存在,则有条件地选择一个列

c++ - 围绕另一个对象旋转对象

c++ - return 语句何时会中断函数?

c++ - 关于行列式计算的一段代码问题

c++ - 命名空间会影响 C++ 中的初始化顺序吗?

visual-studio - 无法初始化客户端代理 : could not connect to vstest. discoveryengine.x86.exe

.net - 在不以管理员身份启动 Visual Studio 的情况下运行 LocalSTS

visual-studio - 清理 Visual Studio 选项卡式文档界面中的文件名?

python - 仅查询具有关系的对象的 PostgreSQL 数据库(使用 Django)