国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android studio 使用opencl庫(kù)(realme 手機(jī))

這篇具有很好參考價(jià)值的文章主要介紹了Android studio 使用opencl庫(kù)(realme 手機(jī))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

唉,嘗試了很多天之后,經(jīng)歷各種各樣報(bào)錯(cuò),查找好幾天,解決五分鐘,終于可以在Android Studio上使用opencl?。。。?/span>

一、查看自己手機(jī)支不支持opencl,下載opencl-z軟件

鏈接:https://pan.baidu.com/s/16irhsWaBLGXjy96zPCa7MQ

提取碼:1233

二、開(kāi)始操作

?????? 一、先下載platform-tools,這樣子就可以使用adb命令了。

Android studio 使用opencl庫(kù)(realme 手機(jī))

?????? 二、adb shell 命令進(jìn)入手機(jī)(手機(jī)已經(jīng)連接,并且處于usb調(diào)試模式)

Android studio 使用opencl庫(kù)(realme 手機(jī))

?????? 三、進(jìn)入 cd /system/vendor/lib 看看有沒(méi)有 libopencl.lib

Android studio 使用opencl庫(kù)(realme 手機(jī))

?????? 四、把opencl.so文件拉到電腦來(lái)(隨意一個(gè)地方),放到指定目錄(android studio)

adb pull /system/vendor/lib/libOpenCL.so d:/opencl

Android studio 使用opencl庫(kù)(realme 手機(jī))

Android studio 使用opencl庫(kù)(realme 手機(jī))

????????五、編譯,運(yùn)行

????????????????1.cmakelist.txt添加庫(kù)文件

add_library(

??????? OpenCL

??????? SHARED

??????? IMPORTED)

set_target_properties(OpenCL PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jinLibs/${ANDROID_ABI}/libOpenCL.so)



target_link_libraries(

????? ??myopencldemo

??????? OpenCL

??????? ${log-lib})

????????????????2.app下的build.gradle添加內(nèi)容

externalNativeBuild {

?? cmake {

??????? abiFilters 'arm64-v8a'

??? }

}

ndk{

???? abiFilters 'arm64-v8a' // 指定編譯

?}

不指定編譯的話,貌似會(huì)出現(xiàn)錯(cuò)誤error adding symbols: File in wrong format clang++.exe: error: linker command failed with exit code 1

????????????????3. 在native-lib.cpp中使用OpenCL

//添加頭文件

#include <android/log.h>

#include <android/native_window_jni.h>

#include <CL/cl.h>

#include <CL/cl_platform.h>

#define LOGD(...) __android_log_print(ANDROID_LOG_INFO,"David",__VA_ARGS__)

?//添加代碼

??? cl_platform_id *platforms;//查詢后獲得的平臺(tái)列表,存放所有平臺(tái)的ID

??? cl_uint num_platforms;//當(dāng)前可查詢的平臺(tái)的數(shù)量



??? jint buffer;//創(chuàng)建一個(gè)buffer用以緩存平臺(tái)數(shù)量,并傳遞;

??? clGetPlatformIDs(0, NULL, &num_platforms);

??? //當(dāng)?shù)诙€(gè)參數(shù)為NULL時(shí),函數(shù)將會(huì)查詢當(dāng)前可用平臺(tái)的數(shù)量,并保存在第三個(gè)參數(shù);

??? platforms = new cl_platform_id[num_platforms];//查詢后獲得的平臺(tái)列表,存放所有平臺(tái)的ID

??? clGetPlatformIDs(num_platforms ,platforms ,NULL);

??? //獲取平臺(tái)數(shù)量后可以查詢平臺(tái),將查詢到的平臺(tái)ID保存在第二個(gè)列表參數(shù)中

??? buffer = num_platforms;

??? LOGD("平臺(tái)數(shù):%d\n",buffer);

??? LOGD("平臺(tái)ID:%d\n",platforms);

LOGD("=============================================\n");

?????? ????????4.那肯定是錯(cuò)誤了。。。。,缺少庫(kù)文件

Android studio 使用opencl庫(kù)(realme 手機(jī))

????????? 引入,又發(fā)現(xiàn)再缺少庫(kù)文件。。。。

?????? ????????所以說(shuō),還是看下缺少啥文件把。。。。。linux系統(tǒng)下,objdump命令查看

objdump -x libOpenCL.so | grep NEEDED

Android studio 使用opencl庫(kù)(realme 手機(jī))

終于找全了,開(kāi)心,應(yīng)該這次穩(wěn)了?。。。?!

Android studio 使用opencl庫(kù)(realme 手機(jī))(根據(jù)手機(jī)不同,可能需要庫(kù)會(huì)不一樣)

????????六、錯(cuò)誤排查

?????? 1、Fatal signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xc5614e64 in tid 22126

?????? 一個(gè)錯(cuò)誤,一杯水,半天過(guò)去。這個(gè)問(wèn)題據(jù)說(shuō)是是因?yàn)檫@幾種情況。

第一空指針問(wèn)題;第二函數(shù)有返回值,但是結(jié)束了沒(méi)有返回。

但,我沒(méi)有解決,也沒(méi)有這問(wèn)題,那么簡(jiǎn)單的程序,是不是。。。

????????2、一頓操作,看logcat(terminal窗口 adb logcat | findstr “程序名”),發(fā)現(xiàn)有這幾個(gè)問(wèn)題。

Access denied finding property "ro.odm.prev.product.name"

/Zygote: Unable to open libbeluga.so: dlopen failed: library "libbeluga.so"

以為是權(quán)限問(wèn)題,開(kāi)始給手機(jī)刷root權(quán)限,又是一晚上過(guò)去,好在解決了,刷成功,不懂,可看

Realme x 刷有root權(quán)限_czhunian的博客-CSDN博客

????????3、刷完之后,覺(jué)得又行了,一編譯運(yùn)行,好吧,又出現(xiàn)問(wèn)題。。。。

?????? UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_Unwind_Resume"

? 找到一個(gè)命令readelf -sW libnative-lib.so| grep _Unwind
??The?UND in the?Ndx?column?means?Undefined symbol
??參考鏈接:https://github.com/google/oboe/issues/966????????然后呢???又是半天過(guò)去,唉

????????七、最后放棄,那是不可能的,重新新建一個(gè)項(xiàng)目,從頭開(kāi)始

新問(wèn)題來(lái)了:A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xe1f7fb

雖然跟上面第一個(gè)問(wèn)題不是很像,但是找了一圈,好像導(dǎo)致原因都是一樣,就是空指針異常,沒(méi)有返回值啥的,又是沒(méi)有解決的問(wèn)題。。。,但是又學(xué)到一個(gè)新知識(shí)

addr2line -f -e libnative-lib.so 0xe1f7fb90,查看到底是哪個(gè)函數(shù)出現(xiàn)!??!

-e 輸出錯(cuò)誤代碼行數(shù)和文件路徑 -f 輸出函數(shù)名

addr2line在ndk下

? ? ? ?Android studio 使用opencl庫(kù)(realme 手機(jī))

?但是問(wèn)題又來(lái)了,輸出是 ???,好吧,絕望了。。。

搜起來(lái),找到一個(gè)不錯(cuò)的解決方案,可以看看

addr2line 輸出為?:0可能原因_qq_23101811的博客-CSDN博客_add2line顯示???

但是死活搞不定,太菜了。。。。

說(shuō)是要編譯成debug的,cmakelist.txt 添加命令,add_definitions("-Wall -g")

但是還是不行,所以說(shuō)擺爛了,不搞了,累了。。。

????????八、又來(lái)了,重新新建項(xiàng)目,換個(gè)手機(jī)

?????? ????????發(fā)現(xiàn),運(yùn)行成功了,wc,喜大普奔,一看平臺(tái)數(shù)0,md,為什么。。。。

????????1.先看看為什么之前的不行,現(xiàn)在的項(xiàng)目編譯運(yùn)行,直接通過(guò)了,一對(duì)比,發(fā)現(xiàn)

? ? ? ? ??Android studio 使用opencl庫(kù)(realme 手機(jī))

?這邊不能引入動(dòng)態(tài)庫(kù),咦,為什么啊,明明動(dòng)態(tài)庫(kù)要加載進(jìn)行,不然怎么找得到!wc,后面想一想可能是因?yàn)槭謾C(jī)有默認(rèn)的執(zhí)行環(huán)境,她自己去里面找了找了,之前的用了自己加載的反而會(huì)出錯(cuò)。

????????2.一看,clGetPlatformIDs函數(shù) 返回CL_INVALID_VALUE(-30)

開(kāi)始各種操作了,報(bào)錯(cuò)是 參數(shù)不合法,可是簡(jiǎn)單啊,咋那么可能不合法。。。

郁悶一晚上

????????3.算是長(zhǎng)征結(jié)束了,真的喜大普奔?。。?!

換個(gè)操作搜,問(wèn)Android studio 使用opencl,發(fā)現(xiàn)了問(wèn)題,唉

在Android Studio上使用OpenCL_gaussrieman123的博客-CSDN博客_opencl 安卓

說(shuō)是,因?yàn)間oogle是不公開(kāi)支持opencl的,所以NDK中并不會(huì)有l(wèi)ibOpenCL.so,這個(gè)庫(kù)都是放在各個(gè)廠家的庫(kù)中,比較常見(jiàn)的位置是"system/vendor/lib/libOpenCL.so",把所需的動(dòng)態(tài)庫(kù)全部pull出來(lái),看成app的私有庫(kù)來(lái)加載,可以解決編譯的問(wèn)題,但是在使用clGetPlatforms時(shí),會(huì)找不到可用的platform;使用stub,將libOpenCL.so動(dòng)態(tài)加載,libopencl.c完成適配平臺(tái)和封裝接口的工作,主要用到dlopendlsym,前者用來(lái)加載vendor支持的CL動(dòng)態(tài)庫(kù),后者用來(lái)映射接口;這邊直接將stub編譯成一個(gè)靜態(tài)庫(kù)使用即可。

歷時(shí)快一周的簡(jiǎn)單的opencldemo,終于可以運(yùn)行成功。算是對(duì)得起這幾天了,唉。

代碼:GitHub - czhunian/opencldemo at master文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-492075.html

到了這里,關(guān)于Android studio 使用opencl庫(kù)(realme 手機(jī))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在基于 Android 相機(jī)預(yù)覽的 CV 應(yīng)用程序中使用 OpenCL

    在基于 Android 相機(jī)預(yù)覽的 CV 應(yīng)用程序中使用 OpenCL

    組裝和配置 Android OpenCL SDK。 示例的 JNI 部分依賴于標(biāo)準(zhǔn) Khornos OpenCL 標(biāo)頭,以及 OpenCL 和 libOpenCL.so 的C++包裝器。標(biāo)準(zhǔn) OpenCL 標(biāo)頭可以從 OpenCV 存儲(chǔ)庫(kù)中的第三方目錄或 Linux 發(fā)行版包中復(fù)制。C++包裝器在Github上的官方Khronos存儲(chǔ)庫(kù)中可用。按以下方式將頭文件復(fù)制到專用目錄:

    2024年01月21日
    瀏覽(25)
  • 使用Android studio,安卓手機(jī)編譯安裝yolov8部署ncnn,頻繁出現(xiàn)編譯錯(cuò)誤

    使用Android studio,安卓手機(jī)編譯安裝yolov8部署ncnn,頻繁出現(xiàn)編譯錯(cuò)誤

    從編譯開(kāi)始就開(kāi)始出現(xiàn)錯(cuò)誤,解決步驟: 1.降低graddle版本,7.2-bin? ---? ?降低為 6.1.1-all 2.仍舊有報(bào)錯(cuò),jdk從17降為?jdk 13, 在setting配置里, 進(jìn)入build,excution,deployment文件夾中,(是一個(gè)文件夾,名字長(zhǎng),不是三個(gè)) 進(jìn)入build?tools,再進(jìn)入 Gradle,? 如圖所示, 勾選,選擇

    2024年04月28日
    瀏覽(38)
  • 使用Android Studio 利用極光推送SDK 制作手機(jī) APP 實(shí)現(xiàn)遠(yuǎn)程測(cè)試技術(shù) (第一部)

    總參考文章:https://blog.csdn.net/qq_38436214/article/details/105073213 Android Studio 安裝配置教程 - Windows(詳細(xì)版) 1.JDK 安裝與環(huán)境變量配置(Win10詳細(xì)版) 《jdk-8u371-windows-i586.exe》 https://blog.csdn.net/qq_38436214/article/details/105071088 此時(shí)會(huì)讓登錄賬號(hào)密碼: https://login.oracle.com/mysso/signon.jsp 賬號(hào):

    2024年02月03日
    瀏覽(25)
  • Android Studio開(kāi)發(fā)之使用內(nèi)容組件Content獲取通訊信息講解及實(shí)戰(zhàn)(附源碼 包括添加手機(jī)聯(lián)系人和發(fā)短信)

    Android Studio開(kāi)發(fā)之使用內(nèi)容組件Content獲取通訊信息講解及實(shí)戰(zhàn)(附源碼 包括添加手機(jī)聯(lián)系人和發(fā)短信)

    運(yùn)行有問(wèn)題或需要源碼請(qǐng)點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言 在實(shí)際開(kāi)發(fā)中,普通App很少會(huì)開(kāi)放數(shù)據(jù)接口給其他應(yīng)用訪問(wèn)。內(nèi)容組件能夠派上用場(chǎng)的情況往往是App想要訪問(wèn)系統(tǒng)應(yīng)用的通訊數(shù)據(jù),比如查看聯(lián)系人,短信,通話記錄等等,以及對(duì)這些通訊數(shù)據(jù)及逆行增刪改查。 首先要給

    2024年02月09日
    瀏覽(56)
  • realme GT neo5 手機(jī)關(guān)閉系統(tǒng)更新

    realme GT neo5 手機(jī)關(guān)閉系統(tǒng)更新

    realme 手機(jī)總是自動(dòng)系統(tǒng)更新,就很煩,而且今天早上我在付錢的時(shí)候,直接就自動(dòng)關(guān)機(jī),更新系統(tǒng)了,讓我在那傻等著,我服了 當(dāng)場(chǎng)我就氣暈了 如果要更新,我直接更新到后面幾個(gè)版本就好 不用過(guò)兩天就更新一次,很傻 先進(jìn)去手機(jī)更多設(shè)置——版本信息——重復(fù)多次點(diǎn)擊

    2024年02月08日
    瀏覽(57)
  • 【評(píng)測(cè)】真我Realme GT Neo5手機(jī)性能評(píng)測(cè)

    【評(píng)測(cè)】真我Realme GT Neo5手機(jī)性能評(píng)測(cè)

    轉(zhuǎn)載請(qǐng)注明出處:小鋒學(xué)長(zhǎng)生活大爆炸[xfxuezhang.cn] 目錄 購(gòu)買記錄 魯大師評(píng)測(cè) 安兔兔評(píng)測(cè) 個(gè)人使用感受 優(yōu)點(diǎn) 幾個(gè)明顯的體驗(yàn)感不好的點(diǎn) 大圖、多圖預(yù)警! 配置說(shuō)明: 運(yùn)行內(nèi)存:12GB 存儲(chǔ)容量:256GB 充電功率:150W 評(píng)測(cè)軟件: 魯大師 安兔兔 ? ? ? ? ? ? ? ? ????????買

    2024年02月09日
    瀏覽(21)
  • android studio 連接安卓手機(jī)/鴻蒙手機(jī)教程

    android studio 連接安卓手機(jī)/鴻蒙手機(jī)教程

    一、配置SDK 1.點(diǎn)擊SDK Manager ?編輯 2.選擇SDK平臺(tái)與SDK工具 1.SDK平臺(tái): 2.SDK工具: 二、連接手機(jī) 1.開(kāi)發(fā)者模式 2.連接數(shù)據(jù)線 三、運(yùn)行android studio 1.SDK平臺(tái): 安卓手機(jī) 選擇手機(jī)的安卓版本, 鴻蒙手機(jī)選擇10.0即可 2.SDK工具: 第一步:點(diǎn)擊 Google USB Driver 第二步:點(diǎn)擊 OK 如果電腦

    2024年02月05日
    瀏覽(76)
  • Android Studio連接安卓手機(jī)

    Android Studio連接安卓手機(jī)

    點(diǎn)擊右上角紅框的【SDK Manager】-【SDK Tools】。 也可以在?【tools】-【SDK Manager】-【SDK Tools】下進(jìn)入。 點(diǎn)擊Google USB Driver,下載后點(diǎn)ok。 右鍵【我的電腦】-【高級(jí)系統(tǒng)設(shè)置】-【環(huán)境變量】,新建變量【Android_Home】; 值為:C:UsersHuoAppDataLocalAndroidSdk;C:UsersHuoAppDataLocalAnd

    2024年02月16日
    瀏覽(32)
  • Android studio 設(shè)置安卓手機(jī)

    參考這個(gè)鏈接 ghttps://developer.android.com/studio/debug/dev-options 列出常用手機(jī)的設(shè)置,但是我的手機(jī)不在此列 Google Pixel Settings ?? About phone ?? Build number Samsung Galaxy S8 and later Settings ?? About phone ?? Software information ?? Build number LG G6 and later Settings ?? About phone ?? Software info ?? Bui

    2024年02月13日
    瀏覽(23)
  • Android Studio連接手機(jī)教程

    Android Studio連接手機(jī)教程

    1.安裝Google USB Driver step1:在Android Studio主界面中,點(diǎn)擊SDK Manager,進(jìn)入Android SDK管理界面 step2:在Android SDK界面下,選擇SDK Tools,然后勾選Google USB Driver,再點(diǎn)擊OK step3:點(diǎn)擊OK step4:點(diǎn)擊Finish [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-lyfTzQ9Y-

    2023年04月12日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包