使用pycparser-头文件的Postgresql编译未找到

时间:2018-10-25 17:36:27

标签: postgresql pycparser

我已经安装了解析C代码的pycparser。

使用pycparser我想解析一个开源项目,即PostgreSQL(version-11.0)。我已经使用Visual Studio Express 2017编译器套件构建了它。但是,在编译期间,它找不到某些头文件,即windows.hwinsock2.h

在查看构建PostgreSQL的目录结构时,我发现它没有这些头文件。如何解决此问题?

还发生了一个奇怪的错误:

  

postgresql / src / include / c.h:363:2:错误:#error必须正常工作   64位整数数据类型

注意:我正在使用Windows 10 64位平台和postgresql-11.0

步骤如下:
                                                                                     我按照在PostgreSQL中从源代码构建的步骤中的说明下载了Visual Studio 2017,Windows-10 SDK,Active Perl。

此后,我打开Visual Studio的开发人员命令提示符,并导航到文件夹postgresql-11.0/src/tools/msvc

使用命令“ build”来构建PostgreSQL。构建过程成功,但是在PostgreSQL的目录结构中仍然找不到windows.hwinsock2.h

1 个答案:

答案 0 :(得分:0)

我不了解pycparser,但是您的问题可能有两个方面:

  1. 您没有给pycparser正确的包含目录列表。您提到的头文件不属于PostgreSQL。

    也许您可以从Visual Studio提示符环境中获取列表。我没有Windows可以验证。

  2. 该错误消息表示未定义mDatabase.child("Reviews").child(uniqueId).child("anyValue").setValue(valueYouWant); HAVE_LONG_INT_64

    现在HAVE_LONG_LONG_INT_64(在MSVC安装过程中复制到pg_config.h.win32)具有以下内容:

    pg_config.h

    由于您未使用MSVC,可能未设置#if (_MSC_VER > 1200) #define HAVE_LONG_LONG_INT_64 1 #endif ,这会导致错误。

    您可以定义_MSC_VER,然后查看是否可以构建。

由于pycparser不是受支持的构建过程,因此本质上您处于紧要关头,因此您必须深入研究源代码并随时进行修复。如果不了解PostgreSQL的源代码和构建过程,您可能会走得太远。