как вызвать функция в исполняемом файле из моей библиотеки?

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

//test
extern "C" void print(const char * str) {
    std::cout << str << std::endl;
}

и это в библиотеке:

extern "C" void print(const char *);

, но когда я вызываю dlopen в исполняемом файле (для загрузки библиотеки), он возвращает ошибку undefined symbol: print . как я могу это исправить?

12
задан milo 9 June 2011 в 12:04
поделиться