สคริปต์ ndk-build
จะสร้างโปรเจ็กต์ที่ใช้บิลด์แบบ Make ของ 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-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 ภายใน (ใช้สำหรับการแก้ไขข้อบกพร่องของ NDK)
-
NDK_DEBUG=1
- บังคับบิลด์ที่แก้ไขข้อบกพร่องได้ (ดูตาราง 1)
-
NDK_DEBUG=0
- บังคับใช้บิลด์รุ่น (ดูตาราง 1)
-
NDK_HOST_32BIT=1
- ใช้ Toolchain ในโหมด 32 บิตเสมอ
-
NDK_APPLICATION_MK=<file>
-
สร้าง โดยใช้ไฟล์
Application.mk
เฉพาะที่ชี้ไปยัง ตัวแปรNDK_APPLICATION_MK
-
-C <project>
-
สร้างโค้ดเนทีฟสำหรับเส้นทางโปรเจ็กต์ซึ่งอยู่ที่
<project>
มีประโยชน์หากคุณไม่ต้องการcd
ที่เครื่องอ่านบัตรดังกล่าว
บิลด์ที่แก้ไขข้อบกพร่องได้กับบิลด์ที่เผยแพร่ได้
ใช้ตัวเลือก NDK_DEBUG
และในบางกรณี
AndroidManifest.xml
เพื่อระบุการแก้ไขข้อบกพร่องหรือเปิดตัวบิลด์
พฤติกรรมที่เกี่ยวกับการเพิ่มประสิทธิภาพ และการรวมสัญลักษณ์ ตาราง 1 แสดงฟังก์ชัน
ผลลัพธ์ของชุดค่าผสมที่เป็นไปได้แต่ละรายการ
การตั้งค่าไฟล์ Manifest | NDK_DEBUG=0 | NDK_DEBUG=1 | ไม่ได้ระบุ NDK_DEBUG |
---|---|---|---|
android:debuggable="จริง" | แก้ไขข้อบกพร่อง สัญลักษณ์; เพิ่มประสิทธิภาพ*1 | แก้ไขข้อบกพร่อง สัญลักษณ์; ไม่ได้เพิ่มประสิทธิภาพ*2 | (เหมือนกับ NDK_DEBUG=1) |
android:debuggable="เท็จ" | เผยแพร่ สัญลักษณ์; เพิ่มประสิทธิภาพ | เผยแพร่ สัญลักษณ์; ไม่ได้เพิ่มประสิทธิภาพ | เผยแพร่ ไม่มีสัญลักษณ์ เพิ่มประสิทธิภาพ*3 |
*2: ค่าเริ่มต้นสำหรับการเรียกใช้
ndk-gdb
*3: โหมดเริ่มต้น
หมายเหตุ: `NDK_DEBUG=0` มีค่าเทียบเท่ากับ "APP_OPTIM=release" และคอมไพล์ด้วย "-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 Make เองและจะใช้สำเนานั้นเว้นแต่คุณจะตั้งค่า $GNUMAKE
ตัวแปรสภาพแวดล้อมที่ชี้ไปยังแบรนด์ที่ไม่เหมาะสม
ฐานข้อมูลการคอมไพล์ JSON
ใน NDK r18 ขึ้นไป ndk-build สามารถสร้าง ฐานข้อมูลการคอมไพล์ JSON
คุณจะใช้ ndk-build compile_commands.json
เพื่อสร้างฐานข้อมูลก็ได้
โดยไม่สร้างโค้ด หรือndk-build GEN_COMPILE_COMMANDS_DB=true
หากคุณ
ต้องการสร้างและสร้างฐานข้อมูลเป็นผลข้างเคียง