linux qt,nm -D查看so动态库函数符号问题

yingge2016 2015-05-20 05:36:05
Linux 系统中qt调用QLibrary来加载动态库so.

Fun getList = (Fun)hello_lib->resolve("_Z9getDEListv");
这个地方,我填入的函数地址是通过命令行
nm -D lib.so查看到的,
我的问题是,就算是相同的代码,不同的电脑上编译器编译的lib.so 库中的getDEList()函数的符号还会是这个_Z9getDEListv吗?
...全文
601 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2015-05-25
  • 打赏
  • 举报
回复
在c++中调用 c 的函数,要加 extern "C"
yingge2016 2015-05-25
  • 打赏
  • 举报
回复
没人回答吗? 现在我想到的方法是在 getDEList()这个函数声明时,添加extern "C" extern "C" QList getDEList(); 这样子,在查看符号表的时候就看到符号是getDEList的符号了。 在调用库的时候,设置函数指针指向这个函数的地址,就可以调用这个函数了。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧