从共享对象文件(.so)获取函数返回类型和参数

时间:2019-06-03 07:07:20

标签: c dll clang shared-libraries dlopen

所以我有这个C程序:

#include <stdio.h>


int helloworld()
{
    return 12;
}

我使用以下命令对此进行编译:

gcc -shared -o libhello.so main.c

这给了我一个libhello.so文件。

现在,我正在使用dlopen在另一个项目中加载此函数。 我的问题是,有什么办法让我在libhello.so文件中“列出”函数,以及它们的返回类型和参数?

我正在使用一个用户使用.so文件创建插件的系统,因此我对功能的确切定义尚不清楚。

基本上,我想为.so文件中定义的函数动态创建函数指针。

谢谢!

1 个答案:

答案 0 :(得分:0)

您也许可以解析一个.so文件并设法获取函数名称(假设它们没有被混淆)。但是不可能获得参数和返回类型的数据类型。这就是文件附带相应头文件的原因。