반응형
1. 프로젝트 폴더에서 app/src/main/cpp/ 에 자신이 라이브러리로 만들고자 하는 소스파일을 넣습니다.
저같은 경우 cpp 폴더에 sample 소스파일을 넣었고, 또한 cpp폴더에 src 폴더를 만들고 src 소스파일을 넣었습니다.
2. CMakeLists.txt를 클릭하여 add_library에다가 위에 추가한 파일들과 생성할 라이브러리 이름을 입력합니다.
이 예제에서는
라이브러리 이름을 Sample-lib로 지정하여 변경하였으며, 1번에서 추가한 파일들인
sample.cpp
sample.h
src/src.c
src/src.h
를 입력하였습니다.
또한, target_link_libraries에도 다음과 같이 위에 입력한 라이브러리 이름으로 변경합니다.
3. 그리고 동기화 후 build 합니다.
소스파일들은 빈 파일들이므로 에러가 나지 않을것입니다.
4. 소스파일에 아래 소스를 입력합니다.
- src.c
//src.c
#include "src.h"
int sum(int n1, int n2){
return n1+n2;
}
-src.h
//src.h
#ifndef SAMPLEPROJECT_SRC_H
#define SAMPLEPROJECT_SRC_H
int sum(int n1, int n2);
#endif //SAMPLEPROJECT_SRC_H
-sample.cpp
//sample.c
#include <cstring>
#include "src/src.h"
char* getVersion(){
return "sample version V1.00";
}
int getSampleSumData(int n1, int n2){
return sum(n1,n2);
}
-sample.h
//sample.h
#ifndef SAMPLEPROJECT_SAMPLE_H
#define SAMPLEPROJECT_SAMPLE_H
char* getVersion();
int getSampleSumData(int n1, int n2);
#endif //SAMPLEPROJECT_SAMPLE_H
5. 동기화 후 빌드하면 Error가 발생합니다. 이유는 함수오버로딩 기능이 있는 c++에서 sum 함수가 있는 파일인 c로 접근해서 그런건데 상세한건 인터넷에 많으므로 패스하고..
다음과 같이 src.h 소스를 변경하면 됩니다.
//scr.h
#ifndef SAMPLEPROJECT_SRC_H
#define SAMPLEPROJECT_SRC_H
#ifdef __cplusplus
extern "C"
{
#endif
int sum(int n1, int n2);
#ifdef __cplusplus
}
#endif
#endif //SAMPLEPROJECT_SRC_H
그리고 빌드하면 성공합니다.
반응형
'Android' 카테고리의 다른 글
[Native C++] 6. aar 배포용 샘플 프로젝트 만들기(또는 aar파일을 프로젝트에 포함시키는 방법) (0) | 2022.10.28 |
---|---|
[Native C++] 5. 라이브러리 동작 확인하고 aar 파일 만들기 (0) | 2022.10.28 |
[Native C++] 4. Java클래스 생성과 C소스 연결하기 (0) | 2022.10.27 |
[Native C++] 3. 기본 헤더파일 경로 추가하기. (0) | 2022.10.27 |
[Native C++]1. 프로젝트 생성하기 (JAVA) (0) | 2022.10.12 |