기본적으로 librtmp 컴파일은 librtmp.so.1
파일과 symlink librtmp.so
을 생성합니다. andorid가 지원하지 않기 때문에 번호 접미사가없는 librtmp.so가 필요합니다. librtmp Makefile을 수정하여 버전 접미어를 제거하는 방법?
#SO_VERSION=1
#SO_posix=.${SOX}.${SO_VERSION}
SO_posix=${SOX}
때문에 파일 생성 된 파일은 이제 librtmp.so
입니다하지만 여전히 librtmp.so.
를로드하려고으로 안드로이드는 그것을로드 할 수 없습니다 (함께 도트)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1891]: 170 could not load needed library 'librtmp.so.' for 'libffmpeg.so' (load_library[1093]: Library 'librtmp.so.' not found)
어떻게 SONAME 또는 파일 이름을 사용하면 실행 파일을 확인할 수 있습니까? – 4ntoine
@ 4ntoine 답변을 업데이트했습니다. –
Android NDK r9d에서이 간단한 트릭이 작동하지 않습니다. NDK는 DT_SONAME을 공유 라이브러리에 자동으로 추가합니다. 더 심한 경우, 실제로 열심히 노력하고이 필드를 제거하면 종속 공유 라이브러리에서 파일 이름이 여전히 ** 필요합니다 **. –