Ich möchte ein Android Eclipse-Projekt verwenden, um OpenCL-Bibliothek zu verwenden. Ich habe mein Eclipse-Projekt für mein vorheriges Handy ein Samsung Alpha eingerichtet. Jetzt bekomme ich ein Moto Z und möchte dieses Projekt ändern, um es wiederzuverwenden.LibOpenCL in Android-Projekt integrieren
Ich erhalte die libOpenCL.so Datei von meinem Handy und ich juts die Datei auf meinem Projekt ändern, aber die Zusammenstellung mir, dass Fehler senden:
[x86_64] SharedLibrary : libJNIProcessor.so
/home/xxxx/NVPACK/android-sdk-linux/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld: error: jni/libs/libOpenCL.so: incompatible target
jni/include/CL/cl.hpp:1090: error: undefined reference to 'clReleaseContext'
jni/include/CL/cl.hpp:1099: error: undefined reference to 'clReleaseCommandQueue'
jni/include/CL/cl.hpp:1135: error: undefined reference to 'clReleaseKernel'
jni/processor.cpp:143: error: undefined reference to 'clRetainProgram'
jni/processor.cpp:145: error: undefined reference to 'clGetProgramInfo'
jni/processor.cpp:147: error: undefined reference to 'clGetProgramBuildInfo'
jni/processor.cpp:152: error: undefined reference to 'clGetProgramBuildInfo'
jni/processor.cpp:156: error: undefined reference to 'clGetProgramBuildInfo'
jni/processor.cpp:159: error: undefined reference to 'clReleaseProgram'
jni/include/CL/cl.hpp:2878: error: undefined reference to 'clEnqueueWriteBuffer'
jni/include/CL/cl.hpp:1106: error: undefined reference to 'clRetainMemObject'
jni/include/CL/cl.hpp:2548: error: undefined reference to 'clSetKernelArg'
jni/include/CL/cl.hpp:1108: error: undefined reference to 'clReleaseMemObject'
jni/include/CL/cl.hpp:1106: error: undefined reference to 'clRetainMemObject'
jni/include/CL/cl.hpp:2548: error: undefined reference to 'clSetKernelArg'
jni/include/CL/cl.hpp:1108: error: undefined reference to 'clReleaseMemObject'
jni/include/CL/cl.hpp:2548: error: undefined reference to 'clSetKernelArg'
jni/include/CL/cl.hpp:2548: error: undefined reference to 'clSetKernelArg'
jni/include/CL/cl.hpp:1106: error: undefined reference to 'clRetainMemObject'
jni/include/CL/cl.hpp:1108: error: undefined reference to 'clReleaseMemObject'
jni/include/CL/cl.hpp:1106: error: undefined reference to 'clRetainMemObject'
jni/include/CL/cl.hpp:1108: error: undefined reference to 'clReleaseMemObject'
jni/include/CL/cl.hpp:3248: error: undefined reference to 'clEnqueueNDRangeKernel'
jni/include/CL/cl.hpp:1144: error: undefined reference to 'clReleaseEvent'
jni/include/CL/cl.hpp:1090: error: undefined reference to 'clReleaseContext'
jni/include/CL/cl.hpp:1088: error: undefined reference to 'clRetainContext'
jni/include/CL/cl.hpp:1090: error: undefined reference to 'clReleaseContext'
jni/include/CL/cl.hpp:1045: error: undefined reference to 'clGetContextInfo'
jni/include/CL/cl.hpp:1099: error: undefined reference to 'clReleaseCommandQueue'
jni/include/CL/cl.hpp:1097: error: undefined reference to 'clRetainCommandQueue'
jni/include/CL/cl.hpp:1099: error: undefined reference to 'clReleaseCommandQueue'
jni/include/CL/cl.hpp:2668: error: undefined reference to 'clBuildProgram'
jni/include/CL/cl.hpp:2769: error: undefined reference to 'clCreateKernel'
jni/include/CL/cl.hpp:1135: error: undefined reference to 'clReleaseKernel'
jni/include/CL/cl.hpp:1133: error: undefined reference to 'clRetainKernel'
jni/include/CL/cl.hpp:1135: error: undefined reference to 'clReleaseKernel'
jni/include/CL/cl.hpp:2769: error: undefined reference to 'clCreateKernel'
jni/include/CL/cl.hpp:1135: error: undefined reference to 'clReleaseKernel'
jni/include/CL/cl.hpp:1133: error: undefined reference to 'clRetainKernel'
jni/include/CL/cl.hpp:2769: error: undefined reference to 'clCreateKernel'
jni/include/CL/cl.hpp:1133: error: undefined reference to 'clRetainKernel'
jni/include/CL/cl.hpp:1090: error: undefined reference to 'clReleaseContext'
jni/include/CL/cl.hpp:1099: error: undefined reference to 'clReleaseCommandQueue'
/home/xxx/NVPACK/android-sdk-linux/ndk-bundle/build/core/build-binary.mk:702 : la recette pour la cible « obj/local/x86_64/libJNIProcessor.so » a échouée
jni/include/CL/cl.hpp:1473: error: undefined reference to 'clGetPlatformIDs'
jni/include/CL/cl.hpp:1480: error: undefined reference to 'clGetPlatformIDs'
jni/include/CL/cl.hpp:1534: error: undefined reference to 'clCreateContextFromType'
jni/include/CL/cl.hpp:2791: error: undefined reference to 'clCreateCommandQueue'
jni/include/CL/cl.hpp:2602: error: undefined reference to 'clCreateProgramWithSource'
jni/include/CL/cl.hpp:1126: error: undefined reference to 'clReleaseProgram'
jni/include/CL/cl.hpp:1037: error: undefined reference to 'clGetProgramBuildInfo'
jni/include/CL/cl.hpp:1855: error: undefined reference to 'clCreateBuffer'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Edit: Ich entferne alle Programm OpenCL und ich gerade eingestellt die OpenCL lib und ich, dass:
x86_64-linux-android/bin/ld: error: jni/libs/libOpenCL.so: incompatible target
/home/xxxx/NVPACK/android-sdk-linux/ndk-bundle/build/core/build-binary.mk:702 : la recette pour la cible « obj/local/x86_64/libJNIProcessor.so » a échouée
Edit 2:
ich endlich die NDK10e herunterladen (die, die ich verwendet, wenn ich dieses Projekt zunächst kompilieren) und Der Bau funktioniert. Aber auf der Ausführung bekomme ich diesen Fehler auf log:
02-22 10:00:41.077 7302 7302 D AndroidRuntime: Shutting down VM
02-22 10:00:41.078 7302 7302 E AndroidRuntime: FATAL EXCEPTION: main
02-22 10:00:41.078 7302 7302 E AndroidRuntime: Process: com.example.subsamplecamera, PID: 7302
02-22 10:00:41.078 7302 7302 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libGLES_mali.so" not found
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:977)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at java.lang.System.loadLibrary(System.java:1530)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at com.example.subsamplecamera.MainActivity.<clinit>(MainActivity.java:30)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at java.lang.Class.newInstance(Native Method)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.Instrumentation.newActivity(Instrumentation.java:1100)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2551)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.ActivityThread.-wrap12(ActivityThread.java)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6123)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-22 10:00:41.078 7302 7302 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.ru
Aber ich habe nicht mali GPU, warum das Projekt mali Bibliothek ruft
Bearbeiten 3: ich es endlich geschafft, das Programm der Kompilierung richtig und die App läuft. Ich ändere den Standart NDK10e zum Snapdragon LLVM und es scheint zu funktionieren. Nun füge ich einen Fehler bei der executiong des OpenCL-Kernel .:
gQueue.enqueueNDRangeKernel(gNV21Kernel,
cl::NullRange,
cl::NDRange((int)ceil((float)w/16.0f)*16,(int)ceil((float)h/16.0f)*16),
cl::NDRange(4,1),
NULL,
NULL);
Ich verstehe nicht, dass Fehler. Kann mir jemand dabei helfen? CL :: Fehler -36
Vielen Dank für die Antwort. Die OpenCL-Lib scheint unterstützt zu werden, da auf der QualCOMM-Website adrenosdk mit OpenCL-Dateien für meinen Chipsatz existiert, aber es gibt kein komplettes Projekt. –
Das ist in Ordnung! :) Lassen Sie mich das für Sie überprüfen –
Können Sie Link teilen, wo es geschrieben wird, dass OpenCL-Lib unterstützt wird? –