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