ndk-build स्क्रिप्ट ऐसे प्रोजेक्ट बनाती है जो एनडीके के मेक-आधारित बिल्ड का इस्तेमाल करते हैं
सिस्टम. यहां दी गई जानकारी से,
Android.mk और
Application.mk कॉन्फ़िगरेशन का इस्तेमाल किया गया
ndk-build ने बनाया.
अंदरूनी
ndk-build स्क्रिप्ट को चलाना, नीचे दिए गए कमांड को चलाने के बराबर है:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
GNU Make 3.81 या उसके बाद के वर्शन पर $GNUMAKE पॉइंट, और
<ndk>, आपकी एनडीके इंस्टॉलेशन डायरेक्ट्री के बारे में बताता है. Google Analytics 4 पर माइग्रेट करने के लिए,
यह जानकारी अन्य शेल स्क्रिप्ट से ndk-build को शुरू करने के लिए या अपनी खुद की स्क्रिप्ट को शुरू करने के लिए भी है
फ़ाइलें बनाना.
कमांड लाइन से शुरू करें
ndk-build स्क्रिप्ट, टॉप लेवल NDK इंस्टॉलेशन डायरेक्ट्री में मौजूद होती है. इसे चलाने के लिए
कमांड लाइन से, इसे अपनी ऐप्लिकेशन प्रोजेक्ट डायरेक्ट्री में या उसके नीचे शुरू करें.
उदाहरण के लिए:
$ cd <project> $ <ndk>/ndk-build
इस उदाहरण में, <project> आपकी
प्रोजेक्ट की रूट डायरेक्ट्री है और <ndk> वह डायरेक्ट्री है जिसमें
आपने एनडीके (NDK) इंस्टॉल किया हो.
विकल्प
ndk-build के सभी पैरामीटर, दिए गए 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_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 (मेनिफ़ेस्ट) के कॉम्बिनेशन.
| मेनिफ़ेस्ट सेटिंग | एनडीके_DEBUG=0 | एनडीके_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` इसके बराबर है `Application.mk` में `APP_OPTIM=debug`, और `-O0` के साथ कंपाइल करता है. `APP_OPTIM` के बारे में ज़्यादा जानकारी के लिए, देखें Application.mk.
कमांड लाइन पर सिंटैक्स का उदाहरण नीचे दिया गया है:
$ ndk-build NDK_DEBUG=1
ज़रूरी शर्तें
ndk-build या NDK का इस्तेमाल करने के लिए, आपको GNU Make 4 की ज़रूरत होगी. NDK में,
GNU समूह की अपनी एक कॉपी बना सकता है और इसका इस्तेमाल तब तक करेगा, जब तक आप $GNUMAKE को सेट नहीं करते
पर्यावरण वैरिएबल की मदद से तैयार किया गया है.
JSON कंपाइलेशन डेटाबेस
NDK r18 और इसके बाद के वर्शन में, ndk-build किसी JSON कंपाइलेशन डेटाबेस.
डेटाबेस जनरेट करने के लिए, ndk-build compile_commands.json का इस्तेमाल किया जा सकता है
कोड बनाए बिना या ndk-build GEN_COMPILE_COMMANDS_DB=true
को साइड इफ़ेक्ट के तौर पर डेटाबेस बनाना और उसे जनरेट करना है.