我正在尝试使用 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.h
、stdio.h
等。这些 header 通常包含不可移植的特定于编译器的扩展;很有可能,您只需要知道有一个函数 printf(...)
就可以解析您的代码。
关于python - pycparser如何读取include in C code files中列出的头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957970/