2

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

#include<folder1/folder2/xyz.h>  

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

4

1 回答 1

3

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

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

于 2014-08-21T22:40:29.720 回答