GCC插件、GCC Melt或GCC Python插件,用于编写GCC扩展

GCC插件、GCC Melt或GCC Python插件,用于编写GCC扩展,python,gcc,melt,gcc-plugins,Python,Gcc,Melt,Gcc Plugins,我需要写一个GCC扩展,我正在尝试使用GCC插件API,它是用GCC编写的,但是它的文档很差,很难使用,我找不到任何使用最新版本的例子 我读到有很多其他的方法来创建gcc扩展,比如,有人能告诉我每种方法的优点/缺点吗,创建插件的3种方法之间有什么主要的区别吗>我使用C++ API和Python插件编写了插件。我还没试过融化,所以我不能说 我首选的方法是使用Python。以这种方式启动和运行插件要简单得多——无需担心编译,API有很好的文档记录且简单,最后,插件很容易从头开始构建(只需make)

我需要写一个GCC扩展,我正在尝试使用GCC插件API,它是用GCC编写的,但是它的文档很差,很难使用,我找不到任何使用最新版本的例子


我读到有很多其他的方法来创建gcc扩展,比如,有人能告诉我每种方法的优点/缺点吗,创建插件的3种方法之间有什么主要的区别吗

>我使用C++ API和Python插件编写了插件。我还没试过融化,所以我不能说

我首选的方法是使用Python。以这种方式启动和运行插件要简单得多——无需担心编译,API有很好的文档记录且简单,最后,插件很容易从头开始构建(只需
make

使用Python插件有两个主要缺点

我经常遇到的缺点是它没有公开GCC的所有有用部分。不过,这并不是一个大问题,在过去,我发现只需向Python插件添加所需的功能就很简单了


另一个可能的缺点是Python插件可能比C++中的插件慢。这对我来说从来都不是问题。

根据@Basile的说法,使用Melt开发插件更容易。好处是:

1) 当GCC编译器处理您的文件时,可以使用它来探索它的内部表示形式

2) 它使用现有的GCC插件挂钩来处理GCC内部中间端表示

还有更多