如何使用 OpenCL 和 fastcv 在 Android 上为 运行 构建可执行的 ARM64-V8 程序?
How to build executable ARM64-V8 program with OpenCL and fastcv for running on Android?
我想在 arm64-v8a 运行 on Android 中构建一个 C++ 程序,它使用了 OpenCL 和 fastCV。当我使用armv7-a架构时,我可以很好地编译和工作。
如果你知道如何解决,请帮助我
Application.mk:
APP_CPPFLAGS = -frtti -fexceptions
APP_ABI:= armeabi-v7a-hard
APP_STL:=gnustl_static
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libOpenCL32
LOCAL_SRC_FILES := ./prelibs/libs32/libOpenCL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfastcvopt32
LOCAL_SRC_FILES := ./prelibs/libs32/libfastcvopt.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
MY_SRC_LIST += $(wildcard ./*.cpp)
LOCAL_C_INCLUDES += ./
LOCAL_SRC_FILES += $(MY_SRC_LIST)
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
LOCAL_CPPFLAGS += -DSUPPORT_OMP -march=armv7-a -mfloat-abi=hard -mfpu=neon -fopenmp -fexceptions -fpermissive -Wno-literal-suffix -Wl,--no-as-needed -std=c++11 -O3 -Wl, -hash-style=sysv
LOCAL_LDLIBS += -L./libs32
LOCAL_LDLIBS += -lm -lz -lc -llog -pie -fPIE -fopenmp
LOCAL_MODULE := testQcom
LOCAL_SHARED_LIBRARIES += libOpenCL32 libfastcvopt32
include $(BUILD_EXECUTABLE)
当我像这样使用.mk 编译源代码时,一切正常,程序运行良好。但是当我要编译arm64-v8a中的程序时,出现错误
arm64-v8a Application.mk:
APP_CPPFLAGS = -frtti -fexceptions
APP_ABI:= arm64-v8a
APP_STL:=gnustl_static
arm64-v8a Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libOpenCL64
LOCAL_SRC_FILES := ./prelibs/libs64/libOpenCL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfastcvopt64
LOCAL_SRC_FILES := ./prelibs/libs64/libfastcvopt.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
MY_SRC_LIST += $(wildcard ./*.cpp)
LOCAL_C_INCLUDES += ./
LOCAL_SRC_FILES += $(MY_SRC_LIST)
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
LOCAL_CPPFLAGS += -DSUPPORT_OMP -march=armv8-a -fopenmp -fexceptions -fpermissive -Wno-literal-suffix -Wl,--no-as-needed -std=c++11 -O3 -Wl, -hash-style=sysv
LOCAL_LDLIBS += -L./libs64
LOCAL_LDLIBS += -lm -lz -lc -llog -pie -fPIE -fopenmp
LOCAL_MODULE := testQcom
LOCAL_SHARED_LIBRARIES += libOpenCL64 libfastcvopt64
include $(BUILD_EXECUTABLE)
错误是:
[arm64-v8a] Executable : testQcom
/home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libgsl.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link)
/home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libCB.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link)
/home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libcutils.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link)
/home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libc++.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link)
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_end_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_write_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_release_device'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
sleep@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_wait_for_events'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_migrate_mem_objects'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to exp@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_command_queue_property'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_platform_ids'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
open@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_native_kernel'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_mutex_init@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_unmap_mem_object'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memcmp@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_pipe_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_read_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_release_gl_objects'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__cxa_atexit@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_release_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_fill_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_program_with_binary'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
os_strncmp'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_platform_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_gl_texture_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_device'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
g_alogDebugMask'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to sin@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlopen@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_write_buffer_rect'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_sub_devices'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_release_mem_object'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_svm_mem_fill'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_acquire_egl_objects_khr'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_context'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to __stack_chk_guard@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_mem_object_destructor_callback'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_barrier'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
sysconf@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to atan@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to strlen@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlerror@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_image3d'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_unload_compiler'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_context'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_program'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_read_buffer_rect'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to puts@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strlcpy@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_kernel_arg_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__register_atfork@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_sub_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_kernel_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to get_panel_settings'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
cos@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to os_alog'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_build_program'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_pipe'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_marker'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_marker_with_wait_list'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_sync_obj_from_cl_event_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_svm_free'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strtoul@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_sampler'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_x_nd_range_kernel_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_copy_image_to_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_supported_image_formats'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to fclose@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_program_build_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to atoi@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strtol@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to dlsym@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
__errno@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to pthread_mutex_destroy@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_buffer'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to fread@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_buffer_from_image_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_gl_context_info_khr'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
acosf@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to tan@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_program_with_builtinkernels'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_once@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_write_image'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
close@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_nd_range_kernel'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
snprintf@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_command_queue_with_properties'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlclose@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_from_gl_texture3d'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_egl_image_img'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_read_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer_to_image'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_task'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_detach@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to ftell@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
atan2@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to strlcat@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_kernel'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_mem_object'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pclose@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_mem_object_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_event_profiling_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_set_event_callback'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
gettimeofday@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to strnlen@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_map_buffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_event_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_renderbuffer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_from_gl_texture2d'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_command_queue_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_svm_alloc'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
__signbitf@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_read_image'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
printf@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to pthread_mutex_lock@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_image'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_kernel_work_group_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_kernels_in_program'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_perf_monitor_info_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_gl_object_info'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to fopen@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strcmp@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_common_unlock_global_mutex'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_compile_program'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to memcpy@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_create@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_svm_memcpy'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
cosf@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to memset@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_command_queue'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to __stack_chk_fail@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
free@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_finish'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_event_wait_for_submission_qcom'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to memchr@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer_rect'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to vsnprintf@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_perf_hint_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_device_ids'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_kernel_arg'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to fseek@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_image'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_sampler_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_image_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_release_egl_objects_khr'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
log@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_map_image'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_svm_unmap'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to sinf@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__cxa_finalize@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_release_sampler'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_kernel'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_program_info'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
malloc@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_svm_map'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_flush'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_device_image_info_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_device_info'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to lrint@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
popen@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_event'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_buffer'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to pthread_mutex_trylock@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strncmp@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_event_from_egl_sync_khr'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pow@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_platform_compiler_unload'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
mmap@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_context_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_program'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to strrchr@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memalign@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to fgets@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_texture'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_image2d'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_program_with_source'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_sampler'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_begin_perf_monitor_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_command_queue'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_svm_free'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_release_command_queue'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_perf_monitor_group_info_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to property_get'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_kernel_exec_info'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_create_from_egl_image_khr'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
ioctl@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to exit@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_context_from_type'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to munmap@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_acquire_gl_objects'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_get_kernel_sub_group_info_khr'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_barrier_with_wait_list'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_set_kernel_arg_svm_pointer'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_perf_monitor_counter_info_qcom'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_enqueue_fill_image'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_sampler_with_properties'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_retain_kernel'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memmem@LIBC'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to read@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_wait_for_events'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to pthread_join@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_context'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_link_program'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_user_event_status'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to cb_common_lock_global_mutex'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_user_event'
.//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to pthread_mutex_unlock@LIBC'
.//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_event'
collect2: error: ld returned 1 exit status
make: *** [obj/local/arm64-v8a/testQcom] Error 1
当我像这样修改 Android.mk 中的一个语句时:
LOCAL_LDLIBS += -fuse-ld=gold
一切正常!
我想在 arm64-v8a 运行 on Android 中构建一个 C++ 程序,它使用了 OpenCL 和 fastCV。当我使用armv7-a架构时,我可以很好地编译和工作。 如果你知道如何解决,请帮助我
Application.mk:
APP_CPPFLAGS = -frtti -fexceptions
APP_ABI:= armeabi-v7a-hard
APP_STL:=gnustl_static
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libOpenCL32
LOCAL_SRC_FILES := ./prelibs/libs32/libOpenCL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfastcvopt32
LOCAL_SRC_FILES := ./prelibs/libs32/libfastcvopt.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
MY_SRC_LIST += $(wildcard ./*.cpp)
LOCAL_C_INCLUDES += ./
LOCAL_SRC_FILES += $(MY_SRC_LIST)
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
LOCAL_CPPFLAGS += -DSUPPORT_OMP -march=armv7-a -mfloat-abi=hard -mfpu=neon -fopenmp -fexceptions -fpermissive -Wno-literal-suffix -Wl,--no-as-needed -std=c++11 -O3 -Wl, -hash-style=sysv
LOCAL_LDLIBS += -L./libs32
LOCAL_LDLIBS += -lm -lz -lc -llog -pie -fPIE -fopenmp
LOCAL_MODULE := testQcom
LOCAL_SHARED_LIBRARIES += libOpenCL32 libfastcvopt32
include $(BUILD_EXECUTABLE)
当我像这样使用.mk 编译源代码时,一切正常,程序运行良好。但是当我要编译arm64-v8a中的程序时,出现错误
arm64-v8a Application.mk:
APP_CPPFLAGS = -frtti -fexceptions
APP_ABI:= arm64-v8a
APP_STL:=gnustl_static
arm64-v8a Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libOpenCL64
LOCAL_SRC_FILES := ./prelibs/libs64/libOpenCL.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libfastcvopt64
LOCAL_SRC_FILES := ./prelibs/libs64/libfastcvopt.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
MY_SRC_LIST += $(wildcard ./*.cpp)
LOCAL_C_INCLUDES += ./
LOCAL_SRC_FILES += $(MY_SRC_LIST)
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
LOCAL_CPPFLAGS += -DSUPPORT_OMP -march=armv8-a -fopenmp -fexceptions -fpermissive -Wno-literal-suffix -Wl,--no-as-needed -std=c++11 -O3 -Wl, -hash-style=sysv
LOCAL_LDLIBS += -L./libs64
LOCAL_LDLIBS += -lm -lz -lc -llog -pie -fPIE -fopenmp
LOCAL_MODULE := testQcom
LOCAL_SHARED_LIBRARIES += libOpenCL64 libfastcvopt64
include $(BUILD_EXECUTABLE)
错误是:
[arm64-v8a] Executable : testQcom /home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libgsl.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link) /home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libCB.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link) /home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libcutils.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link) /home/liliming/Android/NDK/android-ndk-r10e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: warning: libc++.so, needed by .//obj/local/arm64-v8a/libOpenCL.so, not found (try using -rpath or -rpath-link) .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_end_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_write_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_release_device' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
sleep@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_wait_for_events' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_migrate_mem_objects' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toexp@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_command_queue_property' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_platform_ids' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
open@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_native_kernel' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_mutex_init@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_unmap_mem_object' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memcmp@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_pipe_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_read_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_release_gl_objects' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__cxa_atexit@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_release_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_fill_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_program_with_binary' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
os_strncmp' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_platform_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_gl_texture_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_device' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
g_alogDebugMask' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tosin@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlopen@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_write_buffer_rect' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_sub_devices' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_release_mem_object' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_svm_mem_fill' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_acquire_egl_objects_khr' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_context' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to__stack_chk_guard@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_mem_object_destructor_callback' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_barrier' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
sysconf@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toatan@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tostrlen@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlerror@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_image3d' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_unload_compiler' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_context' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_program' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_read_buffer_rect' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toputs@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strlcpy@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_kernel_arg_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__register_atfork@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_sub_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_kernel_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference toget_panel_settings' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
cos@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference toos_alog' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_build_program' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_pipe' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_marker' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_marker_with_wait_list' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_sync_obj_from_cl_event_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_svm_free' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strtoul@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_sampler' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_x_nd_range_kernel_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_copy_image_to_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_supported_image_formats' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tofclose@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_program_build_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference toatoi@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strtol@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference todlsym@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
__errno@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference topthread_mutex_destroy@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_buffer' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tofread@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_buffer_from_image_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_gl_context_info_khr' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
acosf@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference totan@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_program_with_builtinkernels' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_once@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_write_image' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
close@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_nd_range_kernel' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
snprintf@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_command_queue_with_properties' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
dlclose@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_from_gl_texture3d' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_egl_image_img' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_read_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer_to_image' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_task' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_detach@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toftell@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
atan2@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tostrlcat@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_kernel' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_mem_object' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pclose@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_mem_object_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_event_profiling_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_set_event_callback' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
gettimeofday@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tostrnlen@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_map_buffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_event_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_renderbuffer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_from_gl_texture2d' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_command_queue_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_svm_alloc' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
__signbitf@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_read_image' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
printf@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference topthread_mutex_lock@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_image' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_kernel_work_group_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_kernels_in_program' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_perf_monitor_info_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_gl_object_info' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tofopen@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strcmp@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_common_unlock_global_mutex' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_compile_program' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tomemcpy@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pthread_create@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_svm_memcpy' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
cosf@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tomemset@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_retain_command_queue' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to__stack_chk_fail@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
free@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_finish' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_event_wait_for_submission_qcom' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tomemchr@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_buffer_rect' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tovsnprintf@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_perf_hint_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_device_ids' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_kernel_arg' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tofseek@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_copy_image' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_sampler_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_image_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_release_egl_objects_khr' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
log@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_map_image' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_svm_unmap' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tosinf@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
__cxa_finalize@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_release_sampler' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_kernel' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_program_info' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
malloc@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_svm_map' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_flush' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_device_image_info_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_device_info' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tolrint@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
popen@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_event' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_buffer' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference topthread_mutex_trylock@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
strncmp@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_event_from_egl_sync_khr' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
pow@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_platform_compiler_unload' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
mmap@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_context_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_program' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tostrrchr@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memalign@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tofgets@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_from_gl_texture' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_image2d' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_program_with_source' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_sampler' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_begin_perf_monitor_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_command_queue' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_svm_free' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_release_command_queue' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_perf_monitor_group_info_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference toproperty_get' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_kernel_exec_info' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_create_from_egl_image_khr' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
ioctl@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toexit@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_context_from_type' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference tomunmap@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_acquire_gl_objects' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_get_kernel_sub_group_info_khr' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_enqueue_barrier_with_wait_list' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_set_kernel_arg_svm_pointer' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_get_perf_monitor_counter_info_qcom' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_enqueue_fill_image' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_sampler_with_properties' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_retain_kernel' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference to
memmem@LIBC' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference toread@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_wait_for_events' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference topthread_join@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_context' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_link_program' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_set_user_event_status' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference tocb_common_lock_global_mutex' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_create_user_event' .//obj/local/arm64-v8a/libfastcvopt.so: undefined reference topthread_mutex_unlock@LIBC' .//obj/local/arm64-v8a/libOpenCL.so: undefined reference to
cb_release_event' collect2: error: ld returned 1 exit status make: *** [obj/local/arm64-v8a/testQcom] Error 1
当我像这样修改 Android.mk 中的一个语句时:
LOCAL_LDLIBS += -fuse-ld=gold
一切正常!