【问题标题】:how does pycparser reads the header files listed in includes in C code files?pycparser如何读取包含在C代码文件中的头文件?
【发布时间】:2014-07-25 14:22:27
【问题描述】:

我正在尝试使用 pycparser 解析 C 文件。我很想知道,在预处理 C 文件时,pycparser 是否仅读取假 lib 文件夹中提供的那些库文件(如果您在 cpp_args 中提供了假 lib 的路径),或者它还从包含中提到的位置读取语句,例如-
在下面一行

#include<folder1/folder2/xyz.h>  

pycparser 会在哪里搜索 xyz.h,它只会在 FAKE LIB 文件夹中吗?

【问题讨论】:

    标签: python pycparser


    【解决方案1】:

    它将搜索假文件夹以外的其他目录。如果您查看文件pycparser/__init__.py,您会发现一个名为preprocess_file 的函数,它在您的输入文件上调用C 预处理器并将生成的输出放在一个字符串中,然后将其传递给名为parse_file 的下一个函数.每个函数中的代码都相当清晰且注释很好,因此请阅读它,看看它是否有意义。

    fake 文件夹仅包含在标准库头文件中,如stdlib.hstdio.h 等。这些头文件通常包含不可移植的特定于编译器的扩展;很有可能,您只需要知道有一个函数 printf(...) 就可以解析您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 2015-04-02
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多