ndk-build
স্ক্রিপ্ট এমন প্রকল্প তৈরি করে যা NDK-এর মেক-ভিত্তিক বিল্ড সিস্টেম ব্যবহার করে। ndk-build
দ্বারা ব্যবহৃত Android.mk এবং Application.mk কনফিগারেশনের জন্য আরও নির্দিষ্ট ডকুমেন্টেশন রয়েছে।
অভ্যন্তরীণ
ndk-build
স্ক্রিপ্ট চালানো নিম্নলিখিত কমান্ড চালানোর সমতুল্য:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
GNU Make 3.81 বা পরবর্তীতে $GNUMAKE
পয়েন্ট, এবং <ndk>
আপনার NDK ইনস্টলেশন ডিরেক্টরিতে পয়েন্ট করে। আপনি এই তথ্য ব্যবহার করতে পারেন অন্যান্য শেল স্ক্রিপ্ট থেকে ndk-বিল্ড, এমনকি আপনার নিজের তৈরি ফাইলগুলি থেকে।
কমান্ড লাইন থেকে আহ্বান করুন
ndk-build
স্ক্রিপ্টটি শীর্ষ স্তরের NDK ইনস্টলেশন ডিরেক্টরিতে থাকে। কমান্ড লাইন থেকে এটি চালানোর জন্য, আপনার অ্যাপ্লিকেশন প্রজেক্ট ডিরেক্টরিতে বা অধীনে থাকাকালীন এটি চালু করুন। যেমন:
$ cd <project> $ <ndk>/ndk-build
এই উদাহরণে, <project>
আপনার প্রোজেক্টের রুট ডিরেক্টরি নির্দেশ করে এবং <ndk>
হল সেই ডিরেক্টরি যেখানে আপনি 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
এই সমস্যাটি এড়াতে,
-j N
সংশোধক ব্যবহার না করা বাN
এর জন্য একটি ছোট মান নির্বাচন করার কথা বিবেচনা করুন, যেমন 2। -
V=1
- বিল্ড চালু করুন এবং বিল্ড কমান্ড প্রদর্শন করুন।
-
-B
- একটি সম্পূর্ণ পুনর্নির্মাণ জোর করুন.
-
-BV=1
- একটি সম্পূর্ণ পুনর্নির্মাণ জোর করুন, এবং বিল্ড কমান্ড প্রদর্শন করুন।
-
NDK_LOG=1
- অভ্যন্তরীণ NDK লগ বার্তাগুলি প্রদর্শন করুন (NDK নিজেই ডিবাগ করার জন্য ব্যবহৃত হয়)।
-
NDK_DEBUG=1
- একটি ডিবাগযোগ্য বিল্ড জোর করে ( সারণী 1 দেখুন)।
-
NDK_DEBUG=0
- একটি রিলিজ বিল্ড জোর করে ( সারণী 1 দেখুন)।
-
NDK_HOST_32BIT=1
- সর্বদা 32-বিট মোডে টুলচেন ব্যবহার করুন।
-
NDK_APPLICATION_MK=<file>
-
NDK_APPLICATION_MK
ভেরিয়েবল দ্বারা নির্দেশিত একটি নির্দিষ্টApplication.mk
ফাইল ব্যবহার করে তৈরি করুন। -
-C <project>
-
<project>
এ অবস্থিত প্রকল্প পথের জন্য নেটিভ কোড তৈরি করুন। আপনি আপনার টার্মিনালে এটিcd
না চাইলে দরকারী।
ডিবাগযোগ্য বনাম রিলিজ বিল্ড
NDK_DEBUG
বিকল্পটি ব্যবহার করুন এবং কিছু ক্ষেত্রে, AndroidManifest.xml
ডিবাগ বা রিলিজ বিল্ড, অপ্টিমাইজেশান-সম্পর্কিত আচরণ এবং চিহ্নগুলির অন্তর্ভুক্তি নির্দিষ্ট করতে। সারণী 1 সেটিংসের প্রতিটি সম্ভাব্য সমন্বয়ের ফলাফল দেখায়।
ম্যানিফেস্ট সেটিং | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG নির্দিষ্ট করা নেই |
---|---|---|---|
android:debuggable="true" | ডিবাগ; প্রতীক; অপ্টিমাইজ করা*১ | ডিবাগ; প্রতীক; অপ্টিমাইজ করা হয়নি*2 | (NDK_DEBUG=1 এর মতো) |
android:debuggable="false" | মুক্তি; প্রতীক; অপ্টিমাইজ করা হয়েছে | মুক্তি; প্রতীক; অপ্টিমাইজ করা হয়নি | মুক্তি; কোন চিহ্ন নেই; অপ্টিমাইজ করা *3 |
*2:
ndk-gdb
চালানোর জন্য ডিফল্ট।*3: ডিফল্ট মোড।
দ্রষ্টব্য: `NDK_DEBUG=0` হল `APP_OPTIM=রিলিজ` এর সমতুল্য, এবং `-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 Make-এর নিজস্ব অনুলিপি অন্তর্ভুক্ত রয়েছে এবং এটি ব্যবহার করবে যদি না আপনি $GNUMAKE
এনভায়রনমেন্ট ভেরিয়েবল সেট না করেন একটি অনুপযুক্ত মেক নির্দেশ করার জন্য।
JSON সংকলন ডাটাবেস
NDK r18 এবং নতুনটিতে, ndk-build একটি JSON সংকলন ডাটাবেস তৈরি করতে পারে।
আপনি হয় ndk-build compile_commands.json
ব্যবহার করতে পারেন আপনার কোড তৈরি না করেই ডাটাবেস তৈরি করতে, অথবা ndk-build GEN_COMPILE_COMMANDS_DB=true
ব্যবহার করতে পারেন যদি আপনি ডাটাবেসটিকে পার্শ্ব-প্রতিক্রিয়া হিসেবে তৈরি করতে এবং তৈরি করতে চান।