使用 QPluginLoader 调用动态链接库失败,求高手解答

weixin_38056080 2019-09-19 02:05:12
按照 http://mobile.51cto.com/symbian-270525.htm 所述的方法,事先做好好一个动态库 libTaxPlugins.so,希望在另一个工程中调用这个动态库。但在调用时出错。与前述文献唯一的区别是,原文是在windows系统下开发的,动态库后缀名为dll;我的工程是在麒麟操作系统下开发的,后缀名为 so。main(){     ……     QPluginLoader pluginLoader("libTaxPlugins.so");     QObject *plugin = pluginLoader.instance();     QString errorStr = pluginLoader.errorString();     ……}调试发现 errorStr 的值为【Cannot load library /home/wj/Project/TaxPlugins/libTaxPlugins.so.1.0.0:(/home/wj/Project/TaxPlugins/libTaxPlugins.so.1.0.0: undefined symbol: _ZTI3Tax)】同时 plugin 地址为 0x0,显然是动态库加载失败,所以后面动态库的调用也未能成功。请问如何解决这个问题?
...全文
553 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
老卤蛋了 2022-01-14
  • 打赏
  • 举报
回复

原因是unix的.so库有依赖,你没看到.so / .so.1 / .so.1.0 / .so.1.0.0 吗,你应该把生成的库全部放进去

长安1001 2021-06-10
  • 打赏
  • 举报
回复

博主 解决了吗,我也是在麒麟下开发的,qt闪退了一次,再打开就出现了和您一样的问题,请问您当时的解决办法是什么吗

老卤蛋了 2022-01-14
  • 举报
回复
@长安1001 原因是unix的.so库有依赖,你没看到.so / .so.1 / .so.1.0 / .so.1.0.0 吗,你应该把生成的库全部放进去
老卤蛋了 2022-01-14
  • 举报
回复
@长安1001 原因是unix的.so库有依赖,你没看到.so / .so.1 / .so.1.0 / .so.1.0.0 吗,你应该把生成的库全部放进去
老卤蛋了 2022-01-14
  • 举报
回复
@长安1001 原因是unix的.so库有依赖,你没看到.so / .so.1 / .so.1.0 / .so.1.0.0 吗,你应该把生成的库全部放进去
weixin_38064085 2019-09-19
  • 打赏
  • 举报
回复
是我没说清楚呢,还是没有答案

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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