티스토리 뷰

728x90

  Eclipse에 CDT(C/C++ Development Tools)를 설치하였으니 이제 NDK 빌드 환경을 구성해야 합니다. NDK 빌드 환경을 구성하기 전에 Eclipse에서 Android 개발이 가능한 환경이 구성되어 있어야 합니다. 구성하는 방법은 간단히 설명하고, NDK 빌드 환경 구성으로 넘어가겠습니다.

 Eclipse CDT(C/C++ Development Tools) 설치 방법

  http://thdev.net/473


Eclipse에 Android 개발 환경 구성

 Eclipse에 이미 구성되어 있으신 분은 NDK 환경으로 넘어가시면 됩니다.

 SDK를 꼭 설치하지는 않아도 됩니다. ADT (Eclipse Plugin)을 설치하고나면 SDK를 다운 받을 수 있는 창이 나타납니다. 그 때 SDK를 다운 받으셔도 문제 없습니다.


SDK 다운로드를 위한 주소는

   http://developer.android.com/sdk/index.html

 로 접속하시면 하단에 "Download For other Platforms" 라는 부분이 있습니다. 이 부분을 클릭하시고, SDK Tools Only에서 자신의 OS 버전에 맞는 SDK를 다운 받으시면 됩니다. 바로위에 있는 ADT Bundle는 Eclipse + SDK + ADT(Eclipse Plugin)이 포함된 버전입니다. CDT(C/C++ Development Tools)를 설치하였기에 새로운 Eclipse는 필요치 않으므로 SDK만 다운 받습니다.


 다운 받은 SDK는 적당한 위치로 복사하여두시면 됩니다. 저 같은 경우는 윈도우는 C:\ 아래에 두고, 리눅스에서는 ~/ 홈폴더 아래에 두고 사용합니다.

 이 글은 SDK 설치법을 다루는 글이 아니라서 간단히 위와 같이 설명하고 넘기겠습니다.

 SDK에 대해서 좀 더 자세한 사항은 다음 링크를 통해 확인하시면 되겠습니다. http://bit.thdev.net/wxhoJ1


Eclipse에서 ADT Plugin 설치

 Eclipse를 실행하고 ADT Plugin을 설치하겠습니다. 상단의 메뉴에서 Help->Install New Software... 을 선택합니다.


 새로운 주소를 추가해줍니다. (왼쪽에 Wrok with: 부분에 바로 주소를 입력하셔도 됩니다.)

  ADT 설치 주소는 다음 주소에서 확인 가능합니다. : http://developer.android.com/sdk/installing/installing-adt.html


새로운 Repository를 추가하면 됩니다. ADT Plugin의 주소는 아래와 같습니다.

https://dl-ssl.google.com/android/eclipse/


 추가한 Repository에서 SDK와 NDK 두개의 카테고리를 모두 선택하여 설치하시면 됩니다. 설치가 완료되고나면 Eclipse를 재시작하게 됩니다. 재시작 한 이후 설정해야 하는게 있습니다. SDK의 경로를 지정해주거나 새로운 SDK를 다운 받으셔도 됩니다.


SDK 설치가 완료되었으니 NDK 설치를 진행하겠습니다. NDK는 SDK보다 더 간단하게 설치가 가능합니다.


NDK 설치

 NDK 다운로드 http://developer.android.com/tools/sdk/ndk/index.html

 위의 주소에 접속하면 아래와 같이 다양한 OS의 버전 별로 NDK를 지원해주고 있습니다. 자신의 OS 개발환경에 맞도록 다운 받으시고, 적당한 위치에 압축해제만 해주시면 됩니다.


 저는 압축해제를 C:\ 아래에 해두었습니다.


 Eclipse에서 NDK 빌드 할 수 있는 방법은 제가알고있는 4가지가 있습니다. 1번째 방법은 CDT(C/C++ Development Tools) 설치 없이 진행할 수 있는 방법입니다. 이 방법은 지난 글에서 소개하여 아래 링크를 걸어두겠습니다.

  http://thdev.net/407


2 번째 방법은 OpenCV에서 알려주는 방법으로 다음 글에서 이 방법을 통해서 설명하겠습니다.


3 번째 방법은 윈도우에서는 cygwin을 사용하고, 리눅스나, 맥에서는 터미널을 이용하는 방법입니다. 이 방법은 이클립스에서 C/C++을 코딩하지 않고 Vim 편집기를 통해서 개발을 하고, 빌드만 하는 방법입니다. 저도 처음에 NDK에 접근할 때는 이 방법을 사용했었지만 지금은 2번째의 OpenCV 방식을 선호하고 있습니다.

   http://thdev.net/117

 4 번째 방법은 2 번째 방법과 동일하지만 C/C++ 프로젝트로 변환하는게 아닌 NDK에서 제공하는 NDK 프로젝트로 변환하는 방법을 사용합니다. 여기서는 4 번째 방법을 통한 NDK 빌드를 해보고, 다음 글에서 4 번째 방법과 2 번째 방법을 통한 OpenCV 프로젝트 생성 방법을 각각 살펴보겠습니다.


NDK 빌드

 Eclipse를 실행하고, Window->Preferences로 이동합니다.


 이동하면 설정창이 나타나고, 왼쪽의 카테고리 중 Android를 선택합니다. 여기에서 NDK를 선택합니다. NDK의 경로가 비어있으므로 아까 압축해제한 NDK 폴더의 경로를 지정해주시면 됩니다. 저는 C:\android-ndk 라는 폴더가 지정됩니다.


 NDK 빌드 준비는 끝이났습니다. SDK보다 간단하게 NDK 빌드 준비는 끝이났지만 실제 프로젝트에 적용하기 위해서는 몇가지 추가적으로 진행해야 합니다. 이 부분이 바로 위에서 설명한 2 번째 방법과 4 번째 방법 2가지로 분리되는 단계입니다. 여기서는 OpenCV에서 설명하는 방식이 아닌 Android에서 제공하는 방식을 따라서 작성해보겠습니다.


NDK 빌드 준비

 새로운 안드로이드 프로젝트를 생성합니다. 프로젝트에서 NDK를 추가하는 방법입니다. 생성한 프로젝트에서 오른쪽 마우스를 클릭합니다. Android Tools로 이동하면 Add Native Support... 가 있습니다. 이걸 클릭하시면 Android 프로젝트에 Native 개발이 가능한 프로젝트로 변경됩니다.


 Native Support를 클릭하면 Library Name을 지정할 수 있습니다. 이 이름은 추후에 Android.mk에서 변경이 가능하지만 안드로이드 Tools에서는 Android.mk와 기본 파일을 생성해줍니다.


 생성된 프로젝트 목록을 보면 jni 폴더가 기본적으로 생성이되며, 바로 위에서 작성한 이름인 AndroidNDK라는 이름의 cpp와 Android.mk 빌드파일이 생성되었습니다.


 실제로 이렇게 하면 문제가 있습니다. #include <jni.h> 가 추가된 AndroidNDK.cpp가 있지만 빌드에는 문제가 없지만 실제로 프로젝트에 오류가 나게 됩니다. 그 오류를 해결 하기위한 방법을 설명하겠습니다. 이 방법은 모든 NDK 프로젝트를 만드실 때 항상 추가해주셔야 하는 부분입니다.

 프로젝트 오른쪽 마우스를 클릭하여 Properties 로 이동합니다. 프로젝트 설정을 뛰우면 아래와 같이 C/C++ Build와 C/C++ General 2개가 추가된것을 확인할 수 있습니다. C/C++ General->Paths and Symbols를 선택합니다. 여기에 새로운 경로를 하나 추가해주어야 합니다. 추가하기 전에 해주어야 할 사항이 있습니다. 보시는 것과 같이 C:\android-ndk\ .. 처럼 모든 경로가 표시가 됩니다. 이 경우 해당 PC에서는 문제가 없지만 ndk 경로가 D:\로 이동한다면 문제가 생기기 쉽습니다. 이런 부분을 해결하기 위해서 모든 OS에서는 Path라는게 있습니다.


 이 Path를 등록해주면 모든 PC에 같은 PATH 이름만 있다면 어디든 문제없이 빌드가 가능해질 수 있으니 이 부분을 추가해주면 됩니다. PATH 등록 부분은 윈도우에서 하는 방법을 설명합니다.

 윈도우 8을 기준으로 설명하는 부분이므로 다른 버전의 윈도우와는 다를 수 있습니다.

 제어판을 실행하고, 시스템, 보안 탭을 클릭합니다.


아래의 메뉴에서 "시스템"을 선택합니다.


"고급 시스템 설정"을 선택합니다.


다른 OS에서는 내 컴퓨터의 오른쪽 마우스를 선택하여 -> 시스템 설정을 선택하셔도 됩니다.

고급탭에 이동하시면 "환경 변수"가 있습니다. 이 환경 변수를 클릭합니다.


환경 변수에서 "추가" 버튼을 클릭합니다. 이미 NDKROOT 가 있으시다면 등록하시지 않으셔도 됩니다.


 이름은 NDKROOT 또는 NDK_ROOT 등으로 구분되는 이름을 추가하시면 됩니다. 이 경로는 NDK를 설치한 경로를 적어주시면 됩니다. 저는 C:\android-ndk가 기본 경로이므로 아래와 같이 적어주었습니다.


Eclipse를 재시작하고나야 다시 등록이 가능합니다. 아까와 동일한 메뉴에서 c,cpp에 대한 Include를 해주면 됩니다.

오른쪽의 Add..를 클릭하고 다음의 경로를 추가해주시면 됩니다.

 ${NDKROOT}\platforms\android-9\arch-arm\usr\include

${NDKROOT} 의 경우는 Path 등록한 이름이어야 합니다.


 위와 같이 등록이 완료되면 Project->clean 으로 가서 프로젝트 클린을 한번해줍니다. 그리고 ctrl+b를 눌러 프로젝트 빌드를 해주시면 됩니다. 이것보다 간단한 방법을 사용할려면 아래의 내용을 더 추가해주시면 됩니다.

 이번에는 C/C++ Build를 눌러 Behaviour 를 선택하시고, Clean을 체크해제하시고, Build on resource save (Auto build)와 Build 를 체크합니다. 아래와 같이 빈 창으로 두시면 됩니다. 이렇게 하면 클린만 하시면 자동으로 빌드가 이루어집니다. (단점은 클린할 때마다 빌드가 되니 클린 할때도 현재 프로젝트에 대해서만 클린하시기 바랍니다.)

마무리

 간단하게 SDK 설치와 NDK 설치, 프로젝트 생성까지 살펴보았습니다. 위와 같이 모두 등록이 완료되면 Eclipse를 통해서 빌드가 NDK 빌드가 가능해집니다. 다음 글에서는 OpenCV에서 제공하는 방식의 프로젝트 생성을 살펴보겠지만 이 부분과 큰 차이는 없습니다^^; OpenCV에는 CDT를 이용하여 NDK 빌드를 생성하기 때문에 좀 더 많은 설정을 해야하는 단점이 있습니다.

 이상으로 NDK 빌드 환경 구축을 완료하고 OpenCV 또는 C/C++ 빌드를 위한 준비를 마쳤습니다.



댓글