Получить тип возврата функции и аргументы из общего объектного файла (.so) - PullRequest
0 голосов
/ 03 июня 2019

Итак, у меня есть эта программа на C:

#include <stdio.h>


int helloworld()
{
    return 12;
}

И я компилирую это, используя:

gcc -shared -o libhello.so main.c

Это дает мне файл libhello.so.

Теперь я загружаю эту функцию в другом проекте, используя dlopen. У меня вопрос, есть ли способ "перечислить" функции в файле libhello.so вместе с типами возвращаемых данных и аргументами?

Я работаю с системой, в которой пользователи создают плагины с использованием файлов .so, поэтому точное определение функций мне неизвестно.

По сути, я хочу динамически создавать указатели функций для функций, определенных в файле .so.

Спасибо!

1 Ответ

0 голосов
/ 03 июня 2019

вы можете проанализировать файл .so и получить имена функций (при условии, что они не запутаны). Но невозможно получить типы данных аргументов и тип возвращаемого значения. По этой причине файлы с соответствующими заголовочными файлами.

...