2014-11-14 3 views
0

좀 더 자세하게 크로스 컴파일 과정을 이해하려고합니다. 지금까지 우리가 * .a 또는 * .so 파일을 만들기 위해 컴파일 할 수있는 C/C++ 라이브러리가 있다면 지금까지 알고 있습니다. JNI를 통해 안드로이드에 사용하십시오.크로스 컴파일 안드로이드와 의존성

우리는 libpng/libxml2 및 많은 다른 것들에 의존하는 DCMTK 소스 코드 (dicom 툴킷)를 갖도록합니다 .DCMTK는 CMake를 빌드 시스템으로 사용합니다.

안드로이드에서 DCMTK를 사용하려면 크로스 컴파일이 필요합니다. 나는 CMake-GUI로 프로세스를 실행하고 cmake-android 스크립트로 크로스 컴파일을 설정합니다. 그래서 그것은 안드로이드 팔 아치에 대한 올바른 컴파일러 등을 가리 킵니다.

하지만이 과정에서 cmake는 많은 리눅스 라이브러리 (예 : libpng/libxml2)를 사용합니다.

질문 : cmake는 linux (리눅스 시스템이 아닌 안드로이드 용으로 컴파일 된) 시스템에서 일부 바이너리 등을 가져 와서 DCMTK 만 의존성이 아닌 크로스 컴파일 만하므로 어떻게 작동할까요? 교차 컴파일러에서 종속성도 함께 컴파일해야합니까?

답변

1

예, 모든 DCMTK 종속성은 교차 컴파일되고 bionic C 라이브러리와 연결되어야하며 모두 최종 앱의 일부 여야합니다.