python - pycparser如何读取include in C code files中列出的头文件?

标签 python pycparser

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

#include<folder1/folder2/xyz.h>  

pycparser 将在哪里搜索 xyz.h 是否只在 FAKE LIB 文件夹中?

最佳答案

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

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

关于python - pycparser如何读取include in C code files中列出的头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957970/

相关文章:

python - 属性错误 : module 'seaborn' has no attribute 'histplot'

python - Django -- 允许用户只查看自己的页面

python - Facebook 连接 : redirect to white page with only the facebook logo on it (amazon ec2)

python - pycparser 仅访问 if-else 语句的 else

python - pycparser 解析错误

pycparser - #include&lt;header&gt; 与 pycparser

python - 根据引用重新排序多索引数据框列

python - 从数据帧条目创建元组列表

c - 查找c头文件中的所有宏定义

python - 使用 GnuCParser 查找指针参数?