c/c++语言开发共享错误C2011:’timezone’:’struct’类型重定义(postgres)

我正在努力建立一个。 dll文件用C函数扩展postgres服务器。 我正在使用visual studio 2012构建dll和PostgreSQL 9.2。 我导入所有目录postgres“ include server *”但我有错误:

错误C2011:’timezone’:’struct’类型重新定义

错误C2011:’itimerval’:’struct’类型重新定义

在第205和214行的文件* pg_confi_os.h *中

我试过这个解决方案但没有成功。

如何解决这个问题呢?

    我今天看了一遍,发现它是PostgreSQL包含文件中的一个错误。 查看此邮件列表post 。

    您可以通过在项目文件的预处理程序指令中显式定义WIN32来解决此问题。

    请参阅我今天关于该主题的博文

    postgresql团队确实回答了我:

    首先,请注意VS2012不是Postgres支持的构建环境。 见https://www.postgresql.org/docs/current/static/install-windows-full.html

    干杯

    另一个答案是:

    首先,您需要使用Visual Studio 2010或更早版本进行构建。 Express版工作正常。

    其次,你不可能只编译扩展.c文件。 您需要设置一组预处理器定义,其中一些定义在某种程度上是配置/环境。

    目前编译扩展的最佳方法可能是获取PostgreSQL源代码树,使用Makefile将您的扩展名作为文件夹添加到contrib /目录中,然后使用src / tools / msvc中的工具编译源代码树,包括延期。

    我真的希望看到这种改进,使用适用于Windows MSVC版本的PGXS替代方案。 我目前还没有意识到任何事情,但我还没有详细研究过Windows / MSVC下的树形扩展。

    – Craig Ringer PostgreSQL开发,全天候支持,培训和服务

      以上就是c/c++开发分享错误C2011:’timezone’:’struct’类型重定义(postgres)相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522009.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐