ubuntu下android ndk编译环境搭建方法
Posted osnet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下android ndk编译环境搭建方法相关的知识,希望对你有一定的参考价值。
下载ndk13
http://developer.android.com/sdk/ndk/index.html
解压
cd /home/ubuntu/ndk/
tar -xzvf android-ndk-r13b.tgz
安装交叉编译环境
运行在arm64 cpu
安装两个,安装两个目的只是为了灵活性
第一个在目录/home/ubuntu/ndk-android-tool-chain
ubuntu@ubuntu:~/ndk/android-ndk-r13b/build/tools$ ./make-standalone-toolchain.sh --arch=arm64 --platform=android-21 --install-dir=/home/ubuntu/ndk-android-tool-chain --force
第二个安装在默认目录下,同ndk一个目录,没有–install-dir参数:
ubuntu@ubuntu:~/ndk/android-ndk-r13b/build/tools$ ./make-standalone-toolchain.sh --arch=arm64 --platform=android-21 --force
设置环境变量
ubuntu@ubuntu:~/ndk-android-tool-chain/bin$ export PATH=/home/ubuntu/ndk-android-tool-chain/bin:$PATH
ubuntu@ubuntu:~/ndk-android-tool-chain/bin$ source ~/.bashrc
ubuntu@ubuntu:~/ndk/android-ndk-r13b$ export PATH=/home/ubuntu/ndk/android-ndk-r13b:$PATH
ubuntu@ubuntu:~/ndk/android-ndk-r13b$ source ~/.bashrc
测试
arch64-linux-android-gcc -v
编译
方法一,编译c程序
arm-linux-androideabi-gcc -o main main.c
方法二,创建android工程编译
创建目录jni
目录下创建文件:
Application.mk
Android.mk
hello目录
hello目录下:
main.c
Android.mk
Application.mk:
APP_ABI:=arm64-v8a
DEBUG := $(NDK_DEBUG)
ifndef NDK_DEBUG
DEBUG := 0
endif
ifeq ($(DEBUG),true)
DEBUG := 1
endif
ifeq ($(DEBUG),1)
APP_CFLAGS += -O0 -g
APP_OPTIM := debug
else
APP_CFLAGS += -O2
APP_OPTIM := release
endif
APP_STL := stlport_static
APP_CPPFLAGS += -fexceptions
APP_PLATFORM := android-21
NDK_TOOLCHAIN_VERSION :=
jni目录下Android.mk:
include $(call all-subdir-makefiles)
hello目录下Android.mk:
LOG_TO_ANDROID_LOGCAT := true
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= main.c
LOCAL_MODULE:=hello
LOCAL_MODULE_TAGS := optional
ifeq ($(LOG_TO_ANDROID_LOGCAT),true)
LOCAL_CFLAGS+= -DDEBUG -DANDROID_NDK
endif
include $(BUILD_EXECUTABLE)
main.c
#include <stdio.h>
#include <unistd.h>
int main()
printf("hello world \\n");
return 0;
编译命令,在jni目录下:
/jni$ ndk-build
[arm64-v8a] Compile : hello <= main.c
[arm64-v8a] Executable : hello
[arm64-v8a] Install : hello => libs/arm64-v8a/hello
文件生成目录在jni同级别下:obj/local/arm64-v8a
以上是关于ubuntu下android ndk编译环境搭建方法的主要内容,如果未能解决你的问题,请参考以下文章