将C(C++)应用程序与PostgreSQL客户端库libpq.lib链接

将C(C++)应用程序与PostgreSQL客户端库libpq.lib链接,postgresql,visual-studio-2013,compiler-version,Postgresql,Visual Studio 2013,Compiler Version,我正在尝试在Visual Studio 2013中构建一个应用程序,链接到随PostgreSQL 9.4版Windows二进制安装程序下载的libpq.lib库。我得到这个错误: LNK2038:检测到“\u MSC\u VER”不匹配:值“1800”与中的值“1600”不匹配 我的假设是,下载的库是使用MSVC编译器Visual Studio 2010?的早期版本构建的 我想知道哪个MSVC编译器用于构建libpq的各种版本,从9.4、9.5等版本开始。。。。10.0. 我的编译错误表明现代

我正在尝试在Visual Studio 2013中构建一个应用程序,链接到随PostgreSQL 9.4版Windows二进制安装程序下载的libpq.lib库。我得到这个错误:

LNK2038:检测到“\u MSC\u VER”不匹配:值“1800”与中的值“1600”不匹配

我的假设是,下载的库是使用MSVC编译器Visual Studio 2010?的早期版本构建的

我想知道哪个MSVC编译器用于构建libpq的各种版本,从9.4、9.5等版本开始。。。。10.0.


我的编译错误表明现代MSVC编译器/链接器将检查\u MSC\u VER的一致性值。这会阻止在VS2015和VS2017中链接libpq.lib吗?提供的libpq.lib是使用VS2013构建的。

我假设您谈论的是EnterpriseDB提供的用于Windows的PostgreSQL二进制文件


从9.4到v10的所有版本都是用Visual Studio 2013构建的,我已经成功地使用Express Edition为Windows构建了服务器扩展。

Dowloaded自www.postgresql.com/download/。。。我不知道这是否来自EnterpriseDB。下载页面指向EnterpriseDB和OpenSCG安装程序。我对后者没有经验。这两个都不是来自PostgreSQL开发组,后者不提供Windows版本。谢谢。我的项目也在考虑迁移到Visual Studio 2015。这是否意味着我们在链接libpq.lib时会遇到问题?那么VS 2017呢?我假设如果您的程序和libpq加载不同版本的MSVC运行时环境,可能会出现问题。您可以考虑链接,以便C库静态链接到程序中,并且没有冲突。例如,如果一个C库与另一个C库进行了malloced,则释放内存可能仍然是一个问题,因此请尽量避免类似的情况。你可能想读一篇有趣的文章。最后一个问题:我的编译错误表明现代MSVC编译器/链接器将检查\u MSC\u VER的一致性值。这会阻止2015年和2017年与libpq.lib的链接吗?假设libpq是使用VS2013构建的。