У меня есть файл с функцией void initGui()
. Это делает вещи. У меня также есть общая библиотека .so
, созданная с этим файлом.Странные символы при связывании общей библиотеки g ++
Проблема в том, что когда я пытаюсь запустить dlsym(..., "initGui")
, dlerror()
говорит мне, что он не нашел символ (конечно, я использовал dlopen
, чтобы открыть его). Поэтому я попробовал nm
свою общую библиотеку. Я «понял», что _Z7initGuiiii
может быть тем, что я ищу. Поэтому я попробовал dlsym
это ... И это сработало.
Возможно, кто-нибудь скажет мне, как иметь чистые символы в моей общей библиотеке объектов?
Скомпилировать с помощью g++ -Wall -Wextra -Werror -c -fPIC
.
Это когниция имени C++. Однако я не знаю ответа на ваш вопрос. Это хороший вопрос. – nalply
Возможно, это поможет вам: http://www.isotton.com/devel/docs/C++-dlopen-mini-HOWTO/C++-dlopen-mini-HOWTO.html – nalply