大佬,这是那个飞桨ocr我按照你的方法打的moudel包,抱这种问题怎么解决ld: error: found local symbol '_edata' in global part of symbol table in file E:/Android/Car_Paddle/Car/paddle/src/main/cpp/../../../PaddleLite/cxx/libs/arm64-v8a/libpaddle_light_api_shared.so,在官方demo是可以运行的,而且我引用其他model的时候没有这样的问题
5条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
这个错误是由于动态链接库(.so文件)中的符号冲突导致的。在Android构建过程中,编译器发现了全局符号表中本地定义的
_edata
符号,这通常是可执行文件数据段结束地址的标记。要解决这个问题,你需要检查是否有多个库包含相同的符号。在这种情况下,最可能的原因是你同时链接了静态库和共享库,其中都包含了
_edata
符号。解决步骤如下:
-
确保只链接一个版本的Paddle Lite库。如果你之前同时链接了静态库和动态库,去掉其中一个。通常,在Android项目中,我们推荐使用动态库(.so 文件)以减小最终APK的大小。
-
检查你的CMakeLists.txt文件,确保你没有意外地添加了重复的库依赖。你应该看到类似这样的内容来链接动态库:
find_library(PADDLE_LITE_LIB lite-lite) target_link_libraries(your_target ${PADDLE_LITE_LIB})
-
如果你是在C++代码中硬编码了链接,比如使用
-lpaddle_lite
等选项,确保只在一个地方进行了链接。 -
如果以上步骤都无法解决问题,你可能需要查看Paddle Lite的源码,确认是否存在多个实现
_edata
的地方。如果是这样,可能需要联系PaddlePaddle社区寻求帮助,看是否可以提供一个修复这个问题的版本。 -
最后,尝试清理缓存并重新构建你的项目,有时候问题可能是由于缓存引起的。在Android Studio中,可以通过菜单栏的
Build
->Clean Project
和Rebuild Project
来完成这一步。
请按照上述步骤进行操作,并根据需要调整代码片段以适应你的具体项目结构。如果问题仍然存在,请提供更多的上下文信息,以便我能更准确地帮助你。
解决 1无用-
悬赏问题
- ¥15 在Starccm中相变材料的物理模型该如何选择?
- ¥15 关于#android#的问题,请各位专家解答!
- ¥200 PDF使用虚拟列表技术做渲染和加载带来的问题
- ¥15 出现报错Debug Assertion Failed,如何解决?
- ¥50 mcf中怎么实现导入的图片变成透明
- ¥15 ruoyi-flowable流程设计配置的表单时,级联选择如何配置
- ¥20 金属玻璃的剪切局部化程度怎么用ovito表示出来
- ¥15 自定义控件在中文模式下不能输入数字
- ¥15 关于#运维#的问题:用mail.abc.com 端口9696的方式同样能访问hr.abc.com 端口:6080 的页面两个网址都指向同一个外网ip(相关搜索:服务器)
- ¥15 xgboost建模输出结果由三分类变成四分类