הסקריפט ndk-build
יוצר פרויקטים שנעשה בהם שימוש בגרסת ה-build מבוססת-היצרן של NDK
המערכת. יש תיעוד ספציפי יותר עבור
Android.mk ו-
נעשה שימוש בהגדרת Application.mk
מאת ndk-build
.
פנימי
הרצת הסקריפט ndk-build
מקבילה להרצת הפקודה הבאה:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE
נקודות ל-GNU Maker מגרסה 3.81 ואילך, וגם
<ndk>
נקודות לספריית ההתקנה של ה-NDK. אפשר להשתמש
כדי להפעיל ndk-build מסקריפטים אחרים של מעטפת, או אפילו
ליצור קבצים.
הפעלה משורת הפקודה
הסקריפט ndk-build
נמצא בספריית ההתקנה של NDK ברמה העליונה. כדי להריץ אותו
משורת הפקודה, להפעיל אותו בתוך ספריית הפרויקט של האפליקציה או מתחתיה.
לדוגמה:
$ cd <project> $ <ndk>/ndk-build
בדוגמה הזו, <project>
מפנה אל
תיקיית השורש של הפרויקט, ו-<ndk>
היא הספרייה שבה
התקנתם את ה-NDK.
אפשרויות
כל הפרמטרים ל-ndk-build מועברים ישירות ל-GNU make
הבסיסי
שמריצה את הסקריפטים של build NDK. שילוב של ndk-build
עם
בצורה ndk-build <option>
. לדוגמה:
$ ndk-build clean
האפשרויות הבאות זמינות:
-
clean
-
מסירים את כל הקבצים הבינאריים שנוצרו בעבר.
הערה: ב-Mac OS X, מריצים את
ndk-build clean
עם מספר גבוה של הפעלות מקבילות עלול לגרום לשגיאת build כוללת את ההודעה הבאה:rm: fts_read: No such file or directory
כדי למנוע את הבעיה, מומלץ לא להשתמש ב
-jN
או בחירה בערך קטן יותר עבורN
, כמו 2. -
V=1
- השקת build והצגת פקודות build.
-
-B
- אילוץ בנייה מחדש מלאה.
-
-B V=1
- לאלץ הרצה מלאה של בנייה מחדש והצגת פקודות build.
-
NDK_LOG=1
- להציג הודעות יומן פנימיות של NDK (משמשות לניפוי באגים ב-NDK עצמו).
-
NDK_DEBUG=1
- אילוץ גרסת build שאפשר לבצע לניפוי באגים (ראו טבלה 1).
-
NDK_DEBUG=0
- אילוץ גרסת build של גרסה (ראו טבלה 1).
-
NDK_HOST_32BIT=1
- צריך להשתמש ב-toolchain תמיד במצב 32-bit.
-
NDK_APPLICATION_MK=<file>
-
Build, באמצעות קובץ
Application.mk
ספציפי שמצביע עליו משתנהNDK_APPLICATION_MK
. -
-C <project>
-
צור את הקוד המקורי עבור נתיב הפרויקט שנמצא בכתובת
<project>
. מועיל אם לא רוציםcd
אליו במסוף.
גרסאות build שניתנות לניפוי באגים לעומת גרסאות build
משתמשים באפשרות NDK_DEBUG
, ובמקרים מסוימים,
AndroidManifest.xml
כדי לציין גרסת build של ניפוי באגים או גרסה,
התנהגות שקשורה לאופטימיזציה והוספת סמלים. בטבלה 1 רואים את הערכים
תוצאות של כל שילוב אפשרי של הגדרות.
הגדרת מניפסט | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG לא צוין |
---|---|---|---|
android:debuggable="true" | ניפוי באגים; סמלים; מותאם*1 | ניפוי באגים; סמלים; ללא אופטימיזציה*2 | (כמו NDK_DEBUG=1) |
android:debuggable="false" | השקה; סמלים; בוצעה אופטימיזציה | השקה; סמלים; לא בוצעה אופטימיזציה | השקה; ללא סמלים. מותאם*3 |
*2: ברירת המחדל להרצה של
ndk-gdb
.*3: מצב ברירת מחדל.
הערה: הערך 'NDK_DEBUG=0' הוא שווה ערך ל- 'APP_OPTIM=publish', והידור באמצעות '-O2'. הערך 'NDK_DEBUG=1' הוא שווה ערך ל- 'APP_OPTIM=debug' ב-'Application.mk', והידור באמצעות '-O0'. מידע נוסף על האפליקציה 'APP_OPTIM' זמין בכתובת Application.mk.
התחביר בשורת הפקודה הוא, לדוגמה:
$ ndk-build NDK_DEBUG=1
הדרישות
יש צורך ב-GNU Make 4 כדי להשתמש ב-ndk-build או ב-NDK באופן כללי. ה-NDK כולל
עותק משלך של GNU Maker, והוא ישתמש בו אלא אם הגדרת $GNUMAKE
כך שיצביע על יצרן לא מתאים.
מסדי נתונים של הידור JSON
ב-NDK r18 ואילך, ndk-build יכול ליצור מסד נתונים הידור בפורמט JSON.
אפשר להשתמש ב-ndk-build compile_commands.json
כדי ליצור את מסד הנתונים
מבלי לבנות את הקוד, או ndk-build GEN_COMPILE_COMMANDS_DB=true
אם
לבנות וליצור את מסד הנתונים תופעת לוואי.