为 Erlang 提取 C 函数签名

Posted

技术标签:

【中文标题】为 Erlang 提取 C 函数签名【英文标题】:Extracting C functions signatures for Erlang 【发布时间】:2013-06-14 08:31:21 【问题描述】:

我想知道最适合从源代码中提取 c(最终是 c++)函数名称、参数及其类型的工具是什么。我想使用一个可以尽可能自动化的工具。

我想提取签名类型,然后让另一个用 Erlang 编写的程序读取输出。我的目标是使用这些信息在 Erlang 中构造等效的 C 类型/签名(使用 ei)。我希望这个过程适用于任何 C 文件,所以我不能使用任何硬编码的东西。

我发现了很多看起来很有前途的工具,比如 CLang、CScope 和 ANTLR 等等,但我不知道它们中的任何一个是否可以工作,或者是否有更好的方法。

谢谢。

【问题讨论】:

如果您不知道其中任何一个是否有效,您肯定需要在询问之前尝试一下。 【参考方案1】:

当然有更好的东西,但如果你没有找到它:

gcc -aux-info output demo.c
sed '/include/d' output

从源代码中提取函数跳过标准函数

【讨论】:

我读过 gcc 有一些标志可以提供有关代码的信息。有没有办法获得一个 XML 文件作为输出,以便它可以被 Erlang 模块解析?感谢您的回复! 我昨天通过谷歌找到了这个库。我正在调查它。谢谢!

以上是关于为 Erlang 提取 C 函数签名的主要内容,如果未能解决你的问题,请参考以下文章

erlang加密模块crypto的一些使用

Erlang - C 和 Erlang

Erlang中的RSA签名

为啥这个带有类型签名的 erlang prog 可以编译?

如何使用 com.ericsson.otp.erlang 确定 erlang 术语是不是为空

在 Erlang 中运行 C 代码块