android 純ndk編譯環境搭建
阿新 • • 發佈:2019-04-25
clear http 創建 oid 生成 lib file img dea android編譯c代碼和其它不同,因為用的是ndk編譯它固定只認jni目錄,創建其它目錄時編譯不了。同時要用ndk編譯器,如圖所示:
必須是jni目錄,如圖所示:
它就會在jni同目錄下生成運行文件和庫文件(這個決定於mk文件),同時也可以在jni上層編譯反正就是只找jni目錄,如圖:
上面這些都是要基於一個makefile文件,在android中是android.mk
必須是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編譯環境搭建