我正在尝试使用 pycparser 解析 C 文件。我很想知道,在预处理 C 文件时,pycparser 是否仅读取假 lib 文件夹中提供的那些库文件(如果您在 cpp_args 中提供了假 lib 的路径),或者它还从包含中提到的位置读取语句,例如 -
在下面的行中
#include<folder1/folder2/xyz.h>
pycparser 将在哪里搜索 xyz.h 它只会在 FAKE LIB 文件夹中?
它将搜索假文件夹以外的其他目录。如果您查看该文件pycparser/__init__.py
,您会发现一个名为的函数,该函数preprocess_file
调用输入文件上的 C 预处理器,并将生成的输出放入一个字符串中,然后将其传递给名为 的下一个函数parse_file
。每个函数中的代码都相当清晰且注释很好,因此请阅读它,看看它是否有意义。
fake 文件夹仅包含在标准库头文件中,例如stdlib.h
,stdio.h
等等。这些头文件通常包含不可移植的特定于编译器的扩展;很有可能,您只需要知道有一个函数printf(...)
就可以解析您的代码。