반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 양평역
- 고속도로
- 자바
- 정성하
- 디자이어HD
- Java
- 윈도우7
- 마영전
- 자료구조
- 오토바이
- QT
- Qt OpenGL
- Qt 소켓프로그래밍
- HTML
- FFI
- 이륜차
- QTcpServer
- qt 설치
- 엑티브엑스
- 스타크래프트2
- 안드로이드
- vuejs
- 스타2
- Qt4
- 재귀함수
- 알람프로그램
- 바이크
- c언어
- android SAF
- 잡담
Archives
- Today
- Total
프로그래밍과 잡담
[Rust] 안드로이드용 Rust 라이브러리 빌드를 위한 셋팅 본문
1. 사전 준비 작업
- 안드로이드 SDK 설치
- 안드로이드 NDK 설치 ( sdk 열어서 SDK_Tools 탭에 가면 ndk 설치하면 된다. )
- Rust 설치
2. 빌드 셋팅
config 파일을 만들어서 에디터로 연다. 그리고 아래와 같이 셋팅
NDK 경로는 toolchains 라는 폴더가 있는 위치를 넣으면됨
예를들어 나같은 경우는 D:\Dev\android-sdk\ndk\21.3.6528147 이렇게 되어 있음
뒤에 exe, cmd 는 각자의 os에 맞춰서 바꾸면 된다.
[target.aarch64-linux-android]
ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar.exe"
linker = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android21-clang.cmd"
[target.armv7-linux-androideabi]
ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar.exe"
linker = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/armv7a-linux-androideabi21-clang.cmd"
[target.i686-linux-android]
ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/i686-linux-android-ar.exe"
linker = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/i686-linux-android21-clang++.cmd"
[target.x86_64-linux-android]
ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android-ar.exe"
linker = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android21-clang.cmd"
그리고 config 파일을
윈도우 : C:\Users\유저ID\.cargo 에 넣는다.
리눅스 : ~/.cargo/ 에 넣으면 됨
맥은 모르겠음. 어쨌뜬 .cargo 폴더 넣으면됨
3. rust 셋팅
커맨드(cmd) 실행해서 아래를 넣고 실행
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
4. 빌드 방법
난 vscode로 해서 빌드 셋팅해서 처리 하는데 다른거 쓰는 사람들은 재주껏 만들어서 아래 처럼 빌드하면된다.
cargo build --target aarch64-linux-android --release
cargo build --target armv7-linux-androideabi --release
cargo build --target i686-linux-android --release
cargo build --target x86_64-linux-android --release
내가 나중에 쓸지 모르니 vscode 빌드 셋팅 task.json에 넣으면 됨
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "android arm64 build",
"type": "shell",
"command": "cargo build --target aarch64-linux-android --release"
},
{
"label": "android armv7 build",
"type": "shell",
"command": "cargo build --target armv7-linux-androideabi --release"
},
{
"label": "android x86 build",
"type": "shell",
"command": "cargo build --target i686-linux-android --release"
},
{
"label": "android x64 build",
"type": "shell",
"command": "cargo build --target x86_64-linux-android --release"
},
{
"label": "Build For Android",
"type": "shell",
"command": "echo Jobs Done",
"dependsOn": [
"android arm64 build",
"android armv7 build",
"android x86 build",
"android x64 build"
]
},
]
}
5. 라이브러리 넣는 위치
cd ../android/hellworld/app/src/main
mkdir jniLibs
mkdir jniLibs/arm64-v8a
mkdir jniLibs/armeabi-v7a
mkdir jniLibs/x86
mkdir jniLibs/x86_64
망할 안드로이드는 네이티브 빌드도 어려워..
반응형
'프로그래밍 > Rust' 카테고리의 다른 글
[Rust] Rust로 라즈베리파이 GPIO 포트 제어하기 (0) | 2022.04.07 |
---|---|
Rust 구조체를 C#에서 사용하기 (0) | 2020.07.23 |
Rust dll을 다른 언어에서 사용하기 (FFI) (0) | 2019.10.24 |
Comments