如何解析C头文件?
有没有人知道怎么在Python中使用C语言的头文件?举个例子,我有一个C程序,它里面包含了一个全局变量:
typedef struct ImageInfo
{
uint8_t revisionMajor;
uint8_t revisionMinor;
uint16_t checksum;
} ImageInfo;
ImageInfo gImageInfo; /* Placed at a specific address by the linker */
我想用Python脚本来读取C编译器生成的二进制文件,并且可能还想对这个结构进行修改。
4 个回答
9
看看这个 pygccxml。我用它来构建我C/C++源代码的内存图,这样我就可以用它来做很多代码生成的工作。
顺便说一句:我刚开始学习用Python生成代码的时候,实际上试着自己写一个解析器:省省你的力气,别去碰这个!(不过看起来你已经知道了...) pygccxml就是你想要的一切,甚至更多 :)
31
昨天在StackOverflow上提到过这个,我还没来得及仔细看看,但我打算去了解一下。pycparser
是一个用Python写的“C语言解析器和抽象语法树生成器”。
17
你可以看看这个用Python写的C++头文件解析器,地址在这里:http://sourceforge.net/projects/cppheaderparser/。你也可以使用以下这些工具自己写一个解析器: