반응형

안드로이드 스튜디오  코틀린에  C++ 파일 추가하기

 

처음 안드로이드 스튜디오에서 C++로 시작하면 기본으로 존재하는 

C++ 소스 외에 자신의 C++ 소스파일을 추가해서 컴파일 하고 싶을 때 방법입니다.

 

C++ 처음 설정하는 방법은 아래 포스트를 참고해 주세요

dxkor2.tistory.com/181?category=915550

 

 CPP 에서 우클릭-> New->C/C++ Source File를 선택합니다.

 

struct {,  등 해더를 추가하고 싶을땐  바로밑 c/c++ Head File 를 선택합니다.

 

 

자신이 만들고 싶은 C++ 파일 이름을 적습니다.

 

 

CMakeLists.txt 에서 방금 만든 cpp 파일을 추가합니다.

 

만일 상단 바에 Sync Now 가 뜬다면 꼭 클릭해서 실행해 줍니다.

cpp 파일의 상단에 기본으로  #include <jni.h> 처럼 되지 않고

길게 경로가 적힌다면 Sync를 해주지 않아서 그런것 입니다.

계속 문제를 일으키는 원인이 될수 있습니다

 

 

 

코틀린에서 c++ 함수를 호출할 Class를 만듭니다.

위에서 class am3{}

 

호출할 c++ 함수를 정의 합니다.

external fun readyam3() 

 

그리고 기본적으로 시스템 라이브러리인 companion object {init {System.loadLibrary("native-lib")}}를 추가해 줍니다.

만일 여러개의 .cpp 파일을 만든다면 MainActivity.kt 의  

class MainActivity: AppCompatActivity(){  -의 제일 하단에 한번만 추가해 주면 됩니다.

(패키지 이름이 같을때)

 

 

그리고 방금 만든 자신의 cpp 파일에 함수를 코딩하면 됩니다.

이걸 보실 정도면 기본적이  코틀린<->c++ 호출 형식을 아실 거라 생각합니다 만..

 

위처럼 c++ 함수 이름을 readyam3로 했을 경우

위에서 보시는 바와 같이 Java_bjstudio_app_am3_readyam3로 설정 했습니다.

 

 Java_ <- 기본적으로 추가합니다.

_bjstudio_app <- 위에 예시에서 class am3가 있는 Package 이름입니다.

_am3 <- 이 함수를 호출하는 class 이름

_readyam3 <- 함수 이름


앱을 배포용으로 컴파일할때 x86과 arm ,32비트 64비트 형으로 컴파일 되어 배포되어 집니다.

 

 

반응형

+ Recent posts