android-gcc

Android : 2010.01.21 10:12

android-gcc

안드로이드(Android) NDK 의 목표중의 하나는 ARM 바이너리를 만드는 크로스툴체인(cross-toolchains)을 제공하는 것이다. 하지만 이 툴체인은 NDK가 제공하는 빌드환경과 결합되어 있다. 때문에 따로 분리하여 독립적인 환경에서 사용하려고 하면 불편한 점이 많다. Andrew Ross 의 agcc 는 이러한 불편을 해소하는 한가지 방법을 제공한다. 리눅스 배포판에 포함된 gcc와 유사한 동작을 하는 펄 스크립트를 제공하는 것이다. 이 펄 스크립트가 안드로이드에 필요한 명령행 옵션들을 적절한 위치에 추가하게 된다. 이런 접근법은 외부 라이브러리를 빌드 하는 작업에서 꽤 편리하고 효과적인 수단을 제공한다. 하지만 agcc 는 NDK가 아닌 안드로이드 소스트리에 포함된 툴체인과 함께 사용되도록 준비되었고, 최근의 안드로이드 변경에 따른 수정판도 발견되지 않는다는 문제점이 있다. 이 곳에서 제공되는 android-gcc 는 NDK 최신 버전에 포함된 툴체인을 사용하도록 파이썬(Python)으로 재 작성되었다.

android-gcc 가 동작하기 위한 선행조건은 다음과 같다.

  • Python 2.5 이상
  • NDK 1.6 이상 (Windows 와 Linux 버전만 확인되었다.)
  • NDK 의 arm-eabi-gcc 가 포함된 디렉토리가 PATH 에 포함되어 있어야 한다.

gcc를 흉내 내므로 사용법을 따로 설명하지는 않지만, 몇 가지 기억해둘 내용이 있다.

  • android-gcc 를 적당한 위치에 다운로드 한 후 chmod +x 로 실행 가능하도록 만들어주면 설치가 완료된다. 윈도우즈 쓰시는 분들은 저장할 때 도스파일 형식으로 바뀌지 않도록 주의해주세요. wget 권장합니다.
  • 환경 변수 APP_OPTIM 을 release 또는 debug 으로 설정할 수 있다. APP_OPTIM이 정의되지 않은 경우, 명령행 옵션 -DNDEBUG 가 주어지면 release 모드로, 그렇지 않으면 debug 모드로 빌드 한다.
  • 환경변수 TARGET_PLATFORM 을 통해 플랫폼을 지정할 수 있다. 기본은 android-3 이고 android-4 를 지정할 수도 있다.
  • 환경변수 LOCAL_ARM_MODE 를 thumb 또는 arm 으로 설정할 수 있다. 정의되지 않은 경우 release 모드에서는 thumb 가, debug 모드에서는 arm이 선택된다. 
  • 환경변수 ALLOW_UNDEFINED yes 설정하면 링크시에 –-no-undefined 옵션을 제거한다.
  • 공유 라이브러리를 빌드하는 명령행 옵션은 -shared 다.
  • 버전은 호환되는 NDK 버전 뒤에 숫자를 붙여서 나타낸다. 즉 1.6.0 은 NDK 1.6과 호환되는 첫 번째 버전이다.

다운로드



출처 : http://www.flowdas.com/blog/android-gcc

'Android' 카테고리의 다른 글

Android OpenCV  (0) 2010.01.21
android-gcc  (0) 2010.01.21
Android NDK JNI  (0) 2010.01.20
전체 소스에서 일부만 다시 빌드 - mmm 커맨드  (0) 2009.12.23
Posted by Real_G