ç®æ ï¼ç¼è¯arm64ç.soåº
ç¼è¯æ¹æ³ï¼ç论ä¸åºè¯¥æ两ç§äº¤åç¼è¯æ¹æ³ï¼æ³ä¸ï¼å¨Linuxæå¡å¨ä¸å®è£
交åå·¥å
·é¾ï¼ç´æ¥ç¨äº¤åå·¥å
·é¾è¿è¡ç¼è¯é¾æ¥ï¼æ³äºï¼ä½¿ç¨ndkå®æ交åç¼è¯ï¼å 为
ndkå·²ç»å®è£
好交åç¼è¯å·¥å
·é¾ï¼ä»¥åç¸å
³çç³»ç»åºåç³»ç»å¤´æ件äºãè¿ä¸¤ç§æ¹æ³çåºå«å¨äºï¼linuxæå¡å¨ä¸çç¼è¯ä½¿ç¨çmakefileåndk使ç¨ç.mk
æ件æ¾ç¶ä¸åãåå æ¯ndkä½ä¸ºä¸ä¸ªéæç¼è¯ç¯å¢ï¼å¶å®äºä¸å¥ç¹å®çè§åç¨äºçææç»çç¼è¯èæ¬ã
è¿éç®åæ»ç»ä¸ï¼å¦ä½å¨windowsç¨ndkè¿è¡äº¤åç¼è¯arm64ç®æ å¹³å°ç.soåºï¼
step1:æ¾å°ndkå¼åå·¥å
·å
ï¼å®ç½ä¹ç±»çé½å¯ä»¥ä¸è½½ï¼Android-ndk64-r10-windows-x86_64.raræ件
step2:解åä¸è¿°ndkå·¥å
·å
ï¼å°å
å«ç¨åºæºæ件å头æ件çæ件夹testProjecté½æ¾å
¥android-ndk-r10ä¸çsamplesç®å½ä¸ã
æ¾å¨å
¶ä»å°æ¹å½ç¶ä¹å¯ä»¥ï¼ä½æ¯åç»ç¸å¯¹è·¯å¾ä¹ç±»çä¸å¤ªå¥½å ï¼æ¢ç¶å
¶ä»ä¾åé½æ¾è¿ï¼æ代ç æ¾è¿ç¼è¯æ¯æä¿é©çäºã
step3:å¨testProjectä¸å¢å ä¸ä¸ªjniçæ件夹ï¼å¿
é¡»è¦æ·»å ï¼ï¼ï¼ï¼ï¼ï¼
step4:å¨jniæ件夹ä¸ï¼æ·»å ä¸ä¸ªAndroid.mkçæ件ï¼å¿
é¡»è¦æ·»å ï¼ï¼ï¼ï¼ï¼
step5:å¨jniæ件夹ä¸ï¼æ·»å ä¸ä¸ªApplication.mkçæ件ä¸Android.mk并åï¼å¿
é¡»è¦æ·»å ï¼ï¼ï¼ï¼ï¼
step6:Android.mkåApplication.mkåèµ·æ¥å°±ç±»ä¼¼äºlinuxç¯å¢ä¸çmakefileç¼è¯æ件ã
å¦ä½åAndroid.mkï¼å¯ä»¥åèä¾åhelllo-jniä¸jniæ件夹ä¸çAndroid.mkã
LOCAL_PATH:=$(call my-dir) #å¿
é¡»è¦åç
include $(CLEAR_VARS) #å¿
é¡»è¦åç
LOCAL_MODULE:=hello-jni #ç¼è¯åºæ¥ç模åå称
LOCAL_SRC_FILES:=hello-jni.c #å¶å®ç¼è¯çæºæ件å称
include $(BUILD_SHARED_LIBRARY)#æ¾å¨æå
é¤äºä¸è¿°åéä¹å¤ï¼è¿æå
¶ä»çæå®çåéï¼
LOCAL_CFLAGSï¼ç¨äºæå®ç¼è¯é项ï¼è¿ä¸ªåmakefileä¸æ¯å®å
¨ä¸æ ·çï¼å¯ä»¥æå®ç¼è¯é项-gï¼ä¹å¯ä»¥æå®ç¼è¯å®åå®å¼
LOCAL_LDLIBSï¼ç¨äºæå®é¾æ¥çä¾èµåºï¼è¿ä¸ªå¯ä»¥makefileä¹æ¯å®å
¨ä¸æ ·çï¼å¯ä»¥æå®é¾æ¥åºç¨-låºåï¼ä»¥åæå®åºæ索路å¾ç¨_Lè·¯å¾å
LOCAL_STATIC_LIBRARIESï¼æå®é¾æ¥çéæåºåï¼makefileä¸æ²¡æ
LOCAL_C_INCLUDESï¼ç¨äºæå®ç¼è¯å¤´æ件çè·¯å¾ï¼åmakefileä¸ä¸åï¼è·¯å¾åä¸éè¦å -Iï¼ç´æ¥åè·¯å¾å³å¯ï¼å¯ä»¥æ¯ç¸å¯¹è·¯å¾æç»å¯¹è·¯å¾ï¼
å¤ä¸ªè·¯å¾ä¹é´ç¨ç©ºæ ¼éå¼ã
ç¼åä¸è¿°Android.mk碰å°çé®é¢æï¼
(1)使ç¨é»è®¤çç³»ç»èªå¨å è½½stlåºå¤´æ件æ»æ¯åºéï¼åªå¥½æå¨å¨LOCAL_STATIC_LIBRARIESæå®sources/cxx-stl/stlport/stlportæ¥å®æ对#include<string>è¿ç§c++å½¢å¼ç头æ件å è½½
(2)使ç¨$(SYSROOT)/usr/includeæ¥å®æ对系ç»åºå¤´æ件çå è½½ï¼ç»ææ¾ä¸å°sem_t符å·ï¼åªå¥½æå®platforms/android-L/arch-arm64/usr/include
step7:Application.mkç¼å
APP_STLæå®ä½¿ç¨çstl移æ¤åºï¼å¨ææè
éæé½è¡
APP_CPPFLAGSï¼æå®appç¼è¯çç¼è¯é项
APP_ABIæå®abiè§èç±»åï¼ä¾å¦arm64-v8aï¼ä¹å¯ä»¥åæALLå°±æ¯æææçç±»åå
¨é¨ç¼ä¸ç¼
APP_PLATFORMæå®ç¼è¯çplatformå称ï¼è¿éå¯ä»¥åæandroid-Læè
ä¸æå®å
¨ç¼ã
step8:ç¼è¯å®æåï¼è¿è¡ã
å¯å¨cmdï¼ä½¿ç¨cd /Dè¿è¡å°testProjectçjniç®å½ä¸
step9:å°android-ndk-r10ä¸çndk-build.cmdç´æ¥ææ½å°cmdä¸ï¼æ¤æ¶ç´æ¥æ²å车ï¼å°±å¯ä»¥ç¼è¯äºãå½ç¶ä¹å¯ä»¥å ä¸ä¸ª cleanï¼æ¸
é¤ç¼è¯ä¸é´æ件ã
step10:æ£æ¥ä¸ç¼è¯ç»æï¼ç¼è¯æååå¨testProjectä¸å¤äºä¸¤ä¸ªæ件夹ä¸jni并åçï¼libsåobjã
ç¼è¯é¾æ¥åçç»æå°±å¨libsä¸ï¼
温馨提示:答案为网友推荐,仅供参考