Qt: * .pro กับ * .pri


88

อะไรคือความแตกต่างระหว่าง*.proและ*.priไฟล์กำหนดค่าสำหรับ qmake?

สิ่งที่ควรเข้าสู่ไฟล์ * .pro และสิ่งที่ควรเข้าสู่ไฟล์ * .pri

คำตอบ:


54

.proไฟล์คือสิ่งที่คุณจะวิ่ง qmake บน .priไฟล์รวมอยู่ด้วย.proไฟล์ นอกเหนือจากนั้นไม่มีความแตกต่างระหว่างทั้งสองมากนัก

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


75

มีความแตกต่างหลักอย่างหนึ่งระหว่างการใช้ซ้ำเป้าหมาย:

.มือโปร

นี้มักจะเรียกว่าไฟล์โครงการ

.pri

นี้มักจะเรียกว่าโครงการรวมไฟล์

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

คุณจะสามารถเขียนการตั้งค่าและโค้ดทั่วไปลงใน.priไฟล์เหล่านั้นและรวมไว้จาก.proไฟล์ต่างๆได้ตามต้องการ นี่คือวิธีที่คุณจะใช้ในทางปฏิบัติ:

foo.pri

FOO = BAR

hello.pro

...
include($$PWD/foo.pri)
...

world.pro

...
include($$PWD/foo.pri)
...

วิธีนี้คนธรรมดาสามัญจะสามารถใช้ได้ทั้งในเช่นเดียวกับhello.pro world.proมันไม่ได้สร้างความแตกต่างมากนักในสถานการณ์นี้ แต่เมื่อฟังก์ชันการทำงานที่ใช้ร่วมกันใช้งานได้นานขึ้นจะช่วยให้คุณประหยัดงานเขียนเช่นเดียวกับการซิงค์การแก้ไขข้อบกพร่องและอื่น ๆ

คุณสามารถรวม.priไฟล์ไว้ใน.priไฟล์อื่นได้หากต้องการ คุณยังสามารถรวม.priไฟล์ไว้ในโปรเจ็กต์ย่อยอื่น ๆ ได้อีกด้วยเป็นอะไรที่ดีมาก

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

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฟังก์ชันรวมได้ที่นี่ :

รวม (ชื่อไฟล์)

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

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

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


16

รูปแบบของ.priไฟล์เหมือนกับรูปแบบของ.proไฟล์ทุกประการ ความแตกต่างที่สำคัญคือเจตนาอย่างหนึ่ง a .pro คือสิ่งที่คนส่วนใหญ่คาดหวังให้รัน qmake โดยตรงในขณะที่. pri จะรวมอยู่ใน. pro เมื่อคุณสั่งให้ qmake รวมไฟล์อื่นมันจะประมวลผลคำสั่งในไฟล์นั้นราวกับว่ามันอยู่ในไฟล์ปัจจุบัน

สำหรับการอ้างอิง: * .pro vs * .pri


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