Paddle-Lite
Paddle-Lite copied to clipboard
paddlerocr android demo 修改为静态链接库报错
下载官方提供paddlelite v2.10 静态链接库文件 libpaddle_api_light_bundled.a,修改原始demo中的动态链接库文件,并修改CMakeList.txt文件
add_library(
# Sets the name of the library.
libpaddle_api_light_bundled
# Sets the library as a shared library.
STATIC
# Provides a relative path to your source file(s).
IMPORTED)
set_target_properties(
# Specifies the target library.
libpaddle_api_light_bundled
# Specifies the parameter you want to define.
PROPERTIES
IMPORTED_LOCATION
${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libpaddle_api_light_bundled.a
# Provides the path to the library you want to import.
)
编译时报如下错误:
/src/main/cpp/../../../PaddleLite/cxx/libs/arm64-v8a/libpaddle_api_light_bundled.a(device_info.cc.o): In function `paddle::lite::bind_threads(std::__ndk1::vector<int, std::__ndk1::allocator<int> >)':
device_info.cc:(.text._ZN6paddle4lite12bind_threadsENSt6__ndk16vectorIiNS1_9allocatorIiEEEE+0x30): undefined reference to `omp_set_num_threads'
device_info.cc:(.text._ZN6paddle4lite12bind_threadsENSt6__ndk16vectorIiNS1_9allocatorIiEEEE+0xac): undefined reference to `__kmpc_fork_call'
/src/main/cpp/../../../PaddleLite/cxx/libs/arm64-v8a/libpaddle_api_light_bundled.a(device_info.cc.o): In function `.omp_outlined.':
device_info.cc:(.text..omp_outlined.+0x70): undefined reference to `__kmpc_for_static_init_4'
device_info.cc:(.text..omp_outlined.+0xbc): undefined reference to `__kmpc_for_static_fini'
/src/main/cpp/../../../PaddleLite/cxx/libs/arm64-v8a/libpaddle_api_light_bundled.a(device_info.cc.o): In function `paddle::lite::DeviceInfo::SetRunMode(paddle::lite_api::PowerMode, int)':
device_info.cc:(.text._ZN6paddle4lite10DeviceInfo10SetRunModeENS_8lite_api9PowerModeEi+0x1ec): undefined reference to `omp_set_num_threads'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
ps:v2.10动态链接库
您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网文档、常见问题、历史Issue来寻求解答。祝您生活愉快~
Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the API,FAQ and Github Issue to get the answer.Have a nice day!
静态库使用需要包含paddle_use_op.h 和 paddle_use_kernel.h 具体内容请查看C++文档:https://paddle-lite.readthedocs.io/zh/latest/user_guides/cpp_demo.html
静态库使用需要包含paddle_use_op.h 和 paddle_use_kernel.h 具体内容请查看C++文档:https://paddle-lite.readthedocs.io/zh/latest/user_guides/cpp_demo.html
我搜了一下整个paddlelite的项目,自己编译还是官方提供的预编译的库,都没有这两个头文件的。
目前项目里面用的头文件是:

这两个头文件
那就是头文件是正确的话,这个报错是什么原因呢?
这个是openmp 错误,下载的是默认编好的静态库?带openmp 的库?
下载的是官方文档中提供的这两个

![]()
这个是openmp 错误,下载的是默认编好的静态库?带openmp 的库?
官方提供的预编译的库是不是不包含openmp的功能,需要自己调整配置再重新编译吗?但是我看./lite/tools/build_android.sh好像没有关于openmp的配置
openmp 默认是开启的,我本地也复现了这个case,已将问题反馈给框架同学,他们正在定位
还遇到了一个问题想咨询一下看看你们这边有遇到过吗?就是debug签名的app 可以正常运行,但是release签名的app会报如下错误:
2022-01-17 14:54:32.478 26950-27265/? E/OCR_NDK: cpu_mode not found LITE_POWER_HIGH
--------- beginning of crash
2022-01-17 14:54:32.482 26950-27265/? A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 27265 (RxCachedThreadS), pid 26950 (xxxxx)
2022-01-17 14:54:32.564 19002-19103/? E/ServiceScheduleManager: Enter loop()!!! is sync =
2022-01-17 14:54:32.617 27268-27268/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-01-17 14:54:32.617 27268-27268/? A/DEBUG: Build fingerprint: 'Redmi/apollo/apollo:11/RKQ1.200826.002/V12.5.8.0.RJDCNXM:user/release-keys'
2022-01-17 14:54:32.617 27268-27268/? A/DEBUG: Revision: '0'
2022-01-17 14:54:32.617 27268-27268/? A/DEBUG: ABI: 'arm64'
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: Timestamp: 2022-01-17 14:54:32+0800
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: pid: 26950, tid: 27265, name: RxCachedThreadS
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: uid: 10081
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x0 0000000000000000 x1 0000000000006a81 x2 0000000000000006 x3 00000078dcc237b0
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x4 727245203a504d4f x5 727245203a504d4f x6 727245203a504d4f x7 3a3030312320726f
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x8 00000000000000f0 x9 3233ef60ac879a4f x10 0000000000000000 x11 ffffffc0fffffbdf
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x12 0000000000000001 x13 0a2e646574636574 x14 00000079d7bd7be2 x15 00000078dcc22980
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x16 00000079d7bd3948 x17 00000079d7bb2390 x18 00000078dc7392f0 x19 0000000000006946
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x20 0000000000006a81 x21 00000000ffffffff x22 b4000078c4c97c40 x23 00000078dc73c600
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x24 0000000000000010 x25 00000078dcc245b0 x26 0000000000000003 x27 0000007953636000
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: x28 0000000000000000 x29 00000078dcc23830
2022-01-17 14:54:32.619 27268-27268/? A/DEBUG: lr 00000079d7b65aa0 sp 00000078dcc23790 pc 00000079d7b65acc pst 0000000000001000
2022-01-17 14:54:32.620 27268-27268/? A/DEBUG: backtrace:
2022-01-17 14:54:32.620 27268-27268/? A/DEBUG: #00 pc 0000000000089acc /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: a790cdbd8e44ea8a90802da343cb82ce)
2022-01-17 14:54:32.620 27268-27268/? A/DEBUG: #01 pc 0000000000108a14 /data/app/~~bv8F_9K5ZTbAzlPK0_nL9Q==/com.xx.xxxxxxxxxx-oUT4eBy1JwtH3aAjdDnKHA==/lib/arm64/libpaddle_light_api_shared.so (__kmp_abort_process+44) (BuildId: 23bfa42b0177f94935fe6ce56bfb4325a350f071)
2022-01-17 14:54:32.622 608-608/? E/SELinux: avc: denied { find } for pid=5057 uid=10187 name=tethering scontext=u:r:vendor_systemhelper_app:s0:c512,c768 tcontext=u:object_r:tethering_service:s0 tclass=service_manager permissive=0
openmp 默认是开启的,我本地也复现了这个case,已将问题反馈给框架同学,他们正在定位
@chenjiaoAngel 你好,请问这个问题定位到吗,后面会有计划处理吗?
这边也遇到了同样的问题,请问这个问题解决了吗?
@thomaszheng 请教一下,libpaddle_light_api_shared.so (__kmp_abort_process+44)这个问题解决了吗?能分享一下如何解决的吗
没有的,后面我就没有再试了。 需要 @chenjiaoAngel 他们官方来解决
@chenjiaoAngel 请问这个问题是什么原因导致的话,或者是哪个代码文件抛出的(我看看代码有没有办法规避掉 )?后期有计划解决吗?
libpaddle_light_api_shared.so (__kmp_abort_process+44) 解决了吗
可以检查下是不是手机开了省电模式,另外powermode也该成推荐的不绑核模式(3)试试