我有一个文件,里面有void initGui()
函数。它做的东西。 我也有一个.so
共享库与该文件。链接共享库时出现奇怪的符号g ++
问题是,当我尝试启动一个dlsym(..., "initGui")
时,dlerror()
告诉我它没有找到符号(当然,我用dlopen
打开它)。所以我试图nm
我的共享库。我“明白”_Z7initGuiiii
可能是我正在寻找的。所以我试图dlsym
它...它的工作。
请有人告诉我如何在我的共享对象库中有干净的符号?我编了g++ -Wall -Wextra -Werror -c -fPIC
。
这是C++的名称mangling。但是我不知道你的问题的答案。这是一个很好的问题。 – nalply 2013-03-20 19:26:36
也许这将帮助你:http://www.isotton.com/devel/docs/C++-dlopen-mini-HOWTO/C++-dlopen-mini-HOWTO.html – nalply 2013-03-20 19:28:17