基于android studio上OpenCL编译环境配置

一、前期准备(以华为手机为例)

1. 先在手机等移动端设备上安装opencl-z,检测设备所支持的opencl版本等信息

2. 连接手机等移动设备到ubuntu系统电脑,在root用户下输入adb shell 进入手机等移动设备的root环境;

3. 将手机等移动设备中opencl的so包用命令adb pull 拷贝到本地,命令具体如下:adb pull /system/vendor/lib64/libOpenCL.so   /home/sunjf/sunjf/code/

参考:https://blog.csdn.net/gaussrieman123/article/details/86540230

二、在android studio环境中

1. 将手机等移动设备中opencl所对应的头文件CL全部拷贝到工程目录下头文件所在文件位置,诸如/mace/macelibrary/src/main/cpp/include/

2. 将手机等移动设备的opencl的so包复制到工作目标下库文件所在位置,诸如/mace/macelibrary/src/main/jniLibs/arm64-v8a/

3. 配置CMakeList文件,在CMakeList文件中添加opencl头文件及so包相关位置路径,具体如下:

参考:https://www.twblogs.net/a/5b89b1ff2b71775d1ce346a6

 

include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/)
add_library(opencl_lib STATIC IMPORTED)
set_target_properties(opencl_lib PROPERTIES
        IMPORTED_LOCATION
        ${CMAKE_SOURCE_DIR}/src/main/jniLibs/arm64-v8a/${}/libOpenCL.so) 

三、遇到问题

1. /../../../src/main/jniLibs/arm64-v8a//libOpenCL.so: error adding symbols: File in wrong format

解决方法:

参考:https://blog.csdn.net/mazaiting/article/details/79709735

 

ndk {
      abiFilters 'armeabi'
    }

2. 纠错:

出现问题1是因为pull 成手机上32位的so包,而arm64-v8a是基于64位的,所以应该pull 位置在lib64文件夹中的libOpenCL.so。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值