공유 라이브러리가 2 개 있습니다. lib1.so 및 lib2.so입니다. lib1.soAndroid : 동적 공유 라이브러리 공유
는 lib2.so에서 정의 된 일부의 기능을 포함한다. C 프로그램에서 나는 다음과 같은 호출을 사용 lib1.so로드 :
dlopen("lib1.so", RTLD_NOW);
두 라이브러리는 현재 디렉토리에 제공됩니다. 내 프로그램은 데스크톱 리눅스 (Ubuntu, Debian)에서 작동하지만 Android에서는 작동하지 않습니다. Android에서 dlopen은 오류를 반환하고 종료됩니다. 설정하려고 시도 :
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
하지만 도움이되지 않습니다.
Android에서이 코드가 작동하지 않는 이유는 완전히 혼란 스럽습니다. 안드로이드 동적 링커에서 좋은 문서를 찾을 수 없습니다. 그래서, 왜 작동하지 않는 지에 대한 설명이 없습니다.
세부 사항 :
- 안드로이드 리눅스 커널 2.6.35 armv7l
- objdump를가 libc.so 필요 lib1.so 표시와
- objdump를 보여줍니다 lib2.so 만 을 libc.so가 필요 lib2.so
dlerror() : 라이브러리를로드 할 수 없습니다. reloc_library [1311] : 23061 '__aeabi_fcmpgt'을 (를) 찾을 수 없습니다. – psihodelia