1. 程式人生 > >android 純ndk編譯環境搭建

android 純ndk編譯環境搭建

clear http 創建 oid 生成 lib file img dea

android編譯c代碼和其它不同,因為用的是ndk編譯它固定只認jni目錄,創建其它目錄時編譯不了。同時要用ndk編譯器,如圖所示:
技術分享圖片
技術分享圖片
必須是jni目錄,如圖所示:
技術分享圖片
它就會在jni同目錄下生成運行文件和庫文件(這個決定於mk文件),同時也可以在jni上層編譯反正就是只找jni目錄,如圖:
技術分享圖片
上面這些都是要基於一個makefile文件,在android中是android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_ARM_MODE := arm
LOCAL_MODULE    := got_hook
LOCAL_SRC_FILES := got_hook.c

include $(BUILD_EXECUTABLE)  //include $(BUILD_SHARED_LIBRARY) 生成庫

然後在android.mk同目錄下寫對應的c、cpp文件就是了,修改編譯名稱就是,假如寫一個hello wrold,代碼如下:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv){  //註意main有參數 
    printf("test \n");
    return 0;
}

修改mk文件代碼如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_ARM_MODE := arm
LOCAL_MODULE    := test
LOCAL_SRC_FILES := test.c

include $(BUILD_EXECUTABLE)

編譯生成,如圖所示:

技術分享圖片
找到對應平臺的二進制文件(因為我生成所示平臺),這裏平臺是v7的也就是armeabi-v7a,如圖:

技術分享圖片
連接自己的手機,push進去(註意是 /data/local/tmp 其它路徑有權限問題)如圖:
技術分享圖片
運行
技術分享圖片

android 純ndk編譯環境搭建