ไฟล์ Prefix.pch ใน Xcode คืออะไร?


103

นักพัฒนาจำนวนมากจึงเพิ่มมาโครอำนวยความสะดวกต่างๆลงในไฟล์Prefix.pch. แต่คำถามของฉันคือPrefix.pchไฟล์นั้นคืออะไร

  • หากฉันลบPrefix.pchไฟล์นั้นออกจากXcodeแอปพลิเคชันของฉันจะทำงานหรือไม่ หรือจะแสดงข้อผิดพลาดใด ๆ ? หรือจะพังระหว่างสร้าง?

  • ฉันจะเรียกใช้แอปพลิเคชันโดยไม่มีPrefix.pchไฟล์ได้อย่างไร


คำตอบ:


119

ส่วนหัวที่คอมไพล์ไว้ล่วงหน้า

มันคืออะไร?

A Prefix.pchคือส่วนหัวที่คอมไพล์ไว้ล่วงหน้า ส่วนหัวที่คอมไพล์ล่วงหน้าถูกคิดค้นขึ้นเพื่อให้คอมไพล์เร็วขึ้น แทนที่จะแยกวิเคราะห์ไฟล์ส่วนหัวเดียวกันซ้ำแล้วซ้ำอีกไฟล์เหล่านี้จะได้รับการแยกวิเคราะห์หนึ่งครั้งล่วงหน้า

Xcode

ใน Xcode คุณเพิ่มการนำเข้าไฟล์ส่วนหัวที่คุณต้องการใน "ส่วนหัวคำนำหน้า" และเปิดใช้งานPrecompile Prefix Headerเพื่อให้ได้รับการคอมไพล์ล่วงหน้า แต่แนวคิดเบื้องหลังส่วนหัวของคำนำหน้านั้นแตกต่างจากการคอมไพล์ล่วงหน้า

ส่วนหัวของคำนำหน้าจะรวมไว้โดยปริยายที่จุดเริ่มต้นของไฟล์ต้นฉบับทุกไฟล์ เหมือนกับไฟล์ต้นฉบับแต่ละไฟล์ที่เพิ่มเข้ามา

#import "Prefix.pch"

ที่ด้านบนสุดของไฟล์ก่อนสิ่งอื่นใด

กำลังถอดมันออก

คุณสามารถลบส่วนหัวที่คอมไพล์ไว้ล่วงหน้าได้ คำถามนี้ได้รับคำตอบแล้วในชุดข้อความที่ฉันกำลังเชื่อมโยงอยู่ด้านล่าง ประกอบด้วยข้อมูลทั้งหมดที่คุณต้องการรวมทั้งความคิดเห็นที่เป็นประโยชน์

สามารถลบไฟล์ Prefix.pch ออกจากโครงการ Xcode ได้หรือไม่


25

ไฟล์ Prefix.pch คืออะไร?

A .pch เป็นส่วนหัวที่รวบรวมไว้ล่วงหน้า

ในภาษาการเขียนโปรแกรม C และ C ++ ไฟล์ส่วนหัวคือไฟล์ที่ข้อความอาจรวมอยู่ในไฟล์ต้นฉบับอื่นโดยอัตโนมัติโดยตัวประมวลผลล่วงหน้า C ซึ่งโดยปกติจะระบุโดยการใช้คำสั่งคอมไพลเลอร์ในไฟล์ต้นฉบับ

ส่วนหัวของคำนำหน้าจะถูกคอมไพล์และเก็บไว้ในแคชจากนั้นจะรวมไว้ในทุกไฟล์โดยอัตโนมัติในระหว่างการคอมไพล์ สิ่งนี้สามารถเร่งความเร็วในการรวบรวมและช่วยให้คุณรวมไฟล์โดยไม่ต้องเพิ่มคำสั่งนำเข้าให้กับทุกไฟล์ที่ใช้ ไม่จำเป็นต้องใช้และการคอมไพล์ช้าเมื่อใดก็ตามที่คุณเปลี่ยนแปลง

ได้คุณสามารถคอมไพล์และรันโปรเจ็กต์ได้โดยไม่ต้องใช้ไฟล์. pch

ใน Xcode ไปที่การตั้งค่าบิลด์ของเป้าหมาย (Command-Option-E แท็บ build) และยกเลิกการเลือก Precompile Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER) คุณยังสามารถลบค่าของการตั้งค่า Prefix Header ได้หากต้องการ

โปรดทราบว่า

อย่าใส่มาโครในไฟล์ a.pch! ไฟล์. pch คือตามความหมายของส่วนหัวที่คอมไพล์ล่วงหน้าของโปรเจ็กต์ ไม่ควรใช้เกินบริบทของโครงการและไม่ควรมีอะไรเลยนอกจาก #includes และ #imports

หากคุณมีมาโครบางตัวและต้องการแชร์ระหว่างส่วนหัวให้ติด 'em ในไฟล์ส่วนหัวของตัวเอง - Common.h หรืออะไรก็ได้ - และ # รวมไว้ที่จุดเริ่มต้นของ. pch


โปรดพิจารณาเพิ่มความคิดเห็นเพื่อระบุเหตุผลในการลดคะแนนภารกิจเก่านี้
Hemang

7

ส่วนหัวของคำนำหน้าจะถูกคอมไพล์และเก็บไว้ในแคชจากนั้นจะรวมไว้ในทุกไฟล์โดยอัตโนมัติในระหว่างการคอมไพล์ สิ่งนี้สามารถเร่งความเร็วในการรวบรวมและช่วยให้คุณรวมไฟล์โดยไม่ต้องเพิ่มคำสั่งนำเข้าให้กับทุกไฟล์ที่ใช้ ไม่จำเป็นต้องใช้และการคอมไพล์ช้าเมื่อใดก็ตามที่คุณเปลี่ยนแปลง

.pchรูปแบบการตั้งชื่อไฟล์โดยทั่วไปคือyourProjectName-Prefix.pch


1

ประวัติ:

#include => #import => .pch

#include vs #import

ส่วนหัวที่คอมไพล์ล่วงหน้า - prefix.pch

#includevs @importมีข้อเสีย - เวลาในการสร้างช้าเนื่องจากคอมไพเลอร์ต้องแยกวิเคราะห์และคอมไพล์หลายครั้งตามที่.hนำเข้าไฟล์

Precompiled header file - .pch- รวบรวมส่วนหัวทั่วไป เมื่อไฟล์นี้เป็นไฟล์ที่คอมไพล์ไว้ล่วงหน้าจะสามารถใช้ในไฟล์ต้นฉบับซึ่งจะทำให้เวลาสร้างเร็วขึ้น

ลองดูPrefix.pchตัวอย่าง:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

ในการเพิ่ม.pchไฟล์ให้ไปที่Build Settings:

ป้อนคำอธิบายภาพที่นี่

นักพัฒนาต้องจัดการ.pchไฟล์ที่มีค่าใช้จ่ายเพิ่มเติมในการสนับสนุน

ขั้นตอนต่อไปคือ@import[เกี่ยวกับ]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.