libvpx으로 Android x86 용 webm 디코더를 사용하려고합니다.Android NDK에서 " 'rand'에 대한 정의되지 않은 참조를 반환합니다.
나는 다음 명령으로 라이브러리를 만들고 "libvpx.a"를 얻었다.
../configure --target=x86-android-gcc --disable-vp8-encoder --disable-vp9-encoder --disable-examples --sdk-path=$ANDROID_NDK_ROOT --enable-pic --enable-postproc
이 라이브러리를 Windows에서 ndk-build로 사용할 때 오류가 발생했습니다.
C:/android/[project]/jni/../plib/libvpx.a(postproc_mmx.asm.o)(.text+0x1c8): error: undefined reference to 'rand'
C:/android/[project]/jni/../plib/libvpx.a(postproc_sse2.asm.o)(.text+0x65c): error: undefined reference to 'rand'
collect2.exe: error: ld returned 1 exit status
armeabi 용 오류가 발생하지 않았습니다. 누군가 해결책을 알고 있지 않습니까?
(JNI/Android.mk)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := sublib
LOCAL_SRC_FILES := sublib.cpp
LOCAL_LDLIBS := -llog
LOCAL_STATIC_LIBRARIES := libvpx_pre
include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/../plib/Android_x86.mk
(PLIB/Android_x86.mk) (피사체)의 초기 노출 반대로
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libvpx_pre
LOCAL_SRC_FILES := libvpx.a
LOCAL_STATIC_LIBRARIES := cpufeatures
include $(PREBUILT_STATIC_LIBRARY)
$(call import-module,android/cpufeatures)
해당 명령은 빌드를 통과했지만 rand 오류가 발생합니다. 나는 또한 문제를 지속적으로 조사한다. – Tank2005
아, 분명히 헤더를 검사하지 않지만'__ANDROID__' 정의를 확인하는 rand()를 호출하는 어셈블리 코드가 있습니다. configure 명령 (CROSS/LDFLAGS 부분의'./configure '부분 앞)에'ASFLAGS = "- D__ANDROID __"'를 추가하고 다시 빌드하십시오. – mstorsjo
안녕하세요 @ mstorsjo ./configure 전에 ASFLAGS를 추가했는데 '인식 할 수없는 옵션'을 얻었습니다. -__ ANDROID __ '' – freddieptf