2014-03-29 4 views
5

arm-linux-gnueabi-* 툴체인을 사용하여 내 안드로이드 장치 용 파일 (예 : C 또는 C++ 소스 코드)을 컴파일 할 수 있습니까?arm-linux-gnueabi toolchain 대 arm-linux-androideabi toolchain.

내 질문에 약간 어리석은 생각이 들겠지만, arm-linux-androideabi-* 툴체인으로 컴파일 할 때와 동일한 결과가 나타 납니까?

+1

팔 아키텍처 용 팔 도구 체인을 사용할 수 있습니다. (32 비트/64 비트 차이 만 기억하십시오) –

+0

대단히 감사합니다! – bolzano

답변

12

컴파일은 소스 코드를 바이너리로 변환하는 것 이상의 의미 일 수 있습니다. GCC와 같은 컴파일러는 특정 라이브러리를 제공합니다.이 경우에는 처리 할 수없는 하드웨어를 처리하기위한 libgcc입니다. 컴파일러가 툴체인이되면 타겟 시스템에서 제공되는 것과 비슷한 프로그래밍 언어로 표준화 된 런타임 라이브러리를 제공합니다. arm-linux-gnueabi-의 경우는 libc이고 arm-linux-androideabi-의 경우는 bionic입니다.

다른 컴파일러에서 사용할 수있는 호환 가능한 오브젝트 파일을 생성 할 수 있습니다 (elf 참조).

크기가 클 수있는 정적 실행 파일을 생성 할 수 있으며 일치하는 하드웨어/커널에서 작동해야합니다.이 경우 툴체인이이를 목표로하기 때문입니다.

그러나 동적 실행 파일을 생성하면 해당 실행 파일은 종속성을 지원하는 시스템에서만 실행될 수 있습니다. 이 때문에 정적이 아닌 간단한 "hello world"응용 프로그램은 arm-linux-gnueabi-으로 libc가 아니라 bionic을 제공하기 때문에 Android 시스템에서 작동하지 않습니다.

관련 문제