Я имею два общих объектов: A.so и B.so A.so содержит определение функционировать add_check_2aНевозможно найти символ в общем объекте
С моей главной функции в main.c, я вызвать функцию add() в B.so, используя dlsym. Эта функция Add() нужно вызвать функцию add_check_2a, которая определена в A.so
A.c:
INT add_check_2a (Int, Int а б) {
возврата (а + б);
}
В B.c файле, я определил что-то вроде этого:
ехЬегп INT add_check_2a (Int А, внутр б);
ИНТ добавить() {
возвращение add_check_2a (10,5);
}
Я рассчитываю на Linux, LAZY связывание автоматически связывать вызов функции с символом в A.so.
В основном я открыл оба этих общих объекта во время инициализации.
main.c:
dlopen (A.so, RTLD_LOCAL | RTLD_LAZY);
dlopen (B.so, RTLD_LOCAL | RTLD_LAZY);
Затем я нахожу символ добавить в B.so, используя dlsym и вызывать функцию, используя указатель функции.
Я не хочу делать еще один dlopen в B.c и хочу, чтобы линкер каким-то образом делал ленивую привязку.
Любые предложения?
УВАЖЕНИЕМ Sapan