java - JNI怎么链接已经写好的C++编写的动态库文件.so
ringa_lee
ringa_lee 2017-04-18 10:28:03
0
1
368

JNI怎么链接已经写好的C++编写的动态库文件.so

ringa_lee
ringa_lee

ringa_lee

모든 응답(1)
洪涛

CMake를 예로 들어보겠습니다.

미리 컴파일된 라이브러리가 이미 빌드되었으므로 IMPORTED 플래그를 사용하여 CMake에게 해당 라이브러리를 프로젝트로 가져와야 함을 알려야 합니다.

으아악

그런 다음 아래 코드와 같이 set_target_properties() 명령을 사용하여 라이브러리 경로를 지정해야 합니다.

으아악

CMake가 컴파일 중에 헤더 파일을 찾으려면 include_directories() 명령을 사용하고 헤더 파일 주소를 다음 위치에 전달해야 합니다.

으아악

CMake 빌드 스크립트에서 target_link_libraries() 명령을 사용하여 사전 빌드된 라이브러리를 로컬 라이브러리와 연결합니다.

으아악

APP를 빌드하면 Gradle은 가져온 라이브러리를 APK에 자동으로 패키징합니다. APK 분석기를 사용하여 확인할 수 있습니다.

하지만 소스 코드를 얻을 수 있다면 .so를 링크하는 것은 특정 플랫폼과 호환되지 않을 수 있으므로 권장하지 않습니다. 예를 들어 Linux 플랫폼에서 컴파일된 .so 동적 라이브러리는 arm 플랫폼(예: Android)에서 실행할 수 없습니다.

참고:

  • Android Studio 2.2에서 C/C++를 사용해 보세요

  • 일반 ELF에서 재배치(EM: 62) 잘못된 해결 방법

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿