这是编译 NDK 项目的通用 Makefile 配置 : 使用前只需要修改 NDK 和 NDK_ROOT 中的自己的 NDK 即可 ;
NDK = D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/ndk-build.cmd NDK_ROOT = D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b MAKE = "$(NDK_ROOT)/prebuilt/windows-x86_64/bin/make.exe" BUILD_SCRIPT = "$(NDK_ROOT)/build/core/build-local.mk" PROJ_PATH = NDK_PROJECT_PATH=. APP_SCRIPT = APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk BUILD_COMMAND = $(NDK) NDK_PROJECT_PATH=. $(APP_SCRIPT) # D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/ndk-build.cmd NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk .PHONY:all all: $(NDK) $(PROJ_PATH) $(APP_SCRIPT) @echo done! clean: $(NDK) $(PROJ_PATH) $(APP_SCRIPT) clean @echo done! rebuild: $(NDK) $(PROJ_PATH) $(APP_SCRIPT) -B @echo done!
三、配置 Android.mk
Android.mk :
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # 链接 log 日志库 LOCAL_LDLIBS += -llog # 编译可执行程序名称 LOCAL_MODULE := hello # 指定源码 LOCAL_SRC_FILES := main.c # 指定输出目录 # NDK_APP_DST_DIR := ../Debug/$(TARGET_ARCH_ABI) # 编译可执行程序 include $(BUILD_EXECUTABLE)
四、配置 Application.mk
Application.mk :
# 指定要编译的 CPUU 架构 APP_ABI := armeabi armeabi-v7a x86 # 指定用于此应用的 C++ 标准库 APP_STL := gnustl_static # 指定编译的 Android 平台 , 一般是 Android 兼容的最低版本 APP_PLATFORM := android-19
五、主函数源码
main.c 源码 :
#include <stdio.h> int main(int argc, char** argv) { printf("Hello World"); return 0; }
六、编译 NDK 项目
右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 仅用于项目(J) -> 仅生成 VS_NDK_Makefile(B) " 选项 ;
编译结果 :