يُنشئ النص البرمجي ndk-build
مشاريع تستخدم نظام الإنشاء الخاص بـ NDK. وهناك وثائق أكثر تحديدًا لإعدادات
Android.mk و
Application.mk التي يستخدمها
ndk-build
.
أصول داخلية
إنّ تنفيذ النص البرمجي ndk-build
يعادل تنفيذ الأمر التالي:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
تشير السمة $GNUMAKE
إلى GNU Make 3.81 أو إصدار أحدث،
ويشير <ndk>
إلى دليل تثبيت NDK. يمكنك استخدام هذه المعلومات لاستدعاء بنية ndk من النصوص البرمجية الأخرى في واجهة النظام أو حتى إنشاء ملفات خاصة بك.
الاستدعاء من سطر الأوامر
يتوفّر النص البرمجي ndk-build
في دليل تثبيت NDK من المستوى الأعلى. لتشغيلها من سطر الأوامر، يمكنك استدعاءها أثناء أو ضمن دليل مشروع التطبيق.
على سبيل المثال:
$ cd <project> $ <ndk>/ndk-build
في هذا المثال، يشير <project>
إلى الدليل الجذري لمشروعك، ويمثل <ndk>
الدليل الذي ثبَّت فيه اتفاقية عدم الإفشاء.
الخيارات
يتم تمرير جميع المعلّمات المراد إنشاؤها باستخدام الأمر ndk مباشرةً إلى الأمر الأساسي في GNU make
الذي يشغِّل النصوص البرمجية لإصدار NDK. يمكنك دمج ndk-build
والخيارات في النموذج ndk-build <option>
. على سبيل المثال:
$ ndk-build clean
تتوفر الخيارات التالية:
-
clean
-
إزالة أي برامج ثنائية تم إنشاؤها سابقًا
ملاحظة: على نظام التشغيل Mac OS X، قد يؤدي تشغيل
ndk-build clean
مع عدد كبير من عمليات التنفيذ المتوازية إلى حدوث خطأ في الإصدار يتضمّن الرسالة التالية:rm: fts_read: No such file or directory
لتجنّب هذه المشكلة، ننصحك بعدم استخدام معدِّل
-jN
أو اختيار قيمة أصغر لـN
، مثل 2. -
V=1
- يمكنك إطلاق أوامر الإصدار وعرضها.
-
-B
- فرض إعادة الإنشاء بالكامل:
-
-B V=1
- يمكنك فرض إعادة بناء كاملة وعرض أوامر الإصدار.
-
NDK_LOG=1
- عرض رسائل سجلّ NDK الداخلية (تُستخدم لتصحيح أخطاء NDK نفسها)
-
NDK_DEBUG=1
- فرض الإصدار الذي يمكن تصحيح الأخطاء فيه (راجِع الجدول 1).
-
NDK_DEBUG=0
- فرض إنشاء إصدار (راجِع الجدول 1)
-
NDK_HOST_32BIT=1
- استخدِم سلسلة الأدوات دائمًا في وضع 32 بت.
-
NDK_APPLICATION_MK=<file>
-
استخدِم ملف
Application.mk
محدّدًا تتم الإشارة إليه باستخدام المتغيّرNDK_APPLICATION_MK
. -
-C <project>
-
يُرجى إنشاء الرمز الأصلي لمسار المشروع المتوفّر في
<project>
. تكون هذه السمة مفيدة إذا كنت لا تريدcd
تضمينها في الوحدة الطرفية.
الإصدارات القابلة للتصحيح مقابل إصدارات الإصدارات
يمكنك استخدام الخيار NDK_DEBUG
، وفي بعض الحالات،
AndroidManifest.xml
لتحديد تصحيح الأخطاء أو إنشاء إصدار،
والسلوك المرتبط بتحسين التحسين، وتضمين الرموز. ويعرض الجدول 1 نتائج كل مجموعة محتملة من الإعدادات.
الجدول 1: نتائج تركيبات NDK_DEBUG
(سطر الأوامر) وandroid:debuggable
(بيان).
إعدادات البيان | 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=release`، ويتم تجميعه مع `-O2`. أما "NDK_DEBUG=1`"، فتكون مطابقة لـ "APP_OptIM=debug" في "Application.mk"، ويتم تجميعها مع `-O0`. للتعرّف على المزيد من المعلومات حول "App_OptIM`"، يُرجى الاطّلاع على .
وتكون بنية سطر الأوامر على سبيل المثال:
$ ndk-build NDK_DEBUG=1
المتطلبات
عليك استخدام GNU Make 4 لاستخدام الإصدار NDK أو NDK بشكل عام. تتضمن اتفاقية NDK النسخة الخاصة بها من GNU Make وستستخدم ذلك ما لم يتم ضبط متغيّر البيئة $GNUMAKE
ليشير إلى إصدار غير ملائم.
قواعد بيانات التجميع في JSON
في الإصدار 18 من منصّة NDK والإصدارات الأحدث، يمكن أن ينشئ ndk-build قاعدة بيانات مجمّعة بتنسيق JSON.
يمكنك استخدام ndk-build compile_commands.json
لإنشاء قاعدة البيانات
بدون إنشاء رمز، أو ndk-build GEN_COMPILE_COMMANDS_DB=true
إذا
أردت إنشاء قاعدة البيانات وإنشائها كآثار جانبية.