Qt: * .pro vs * .pri

88

Apa perbedaan antara *.prodan *.prifile konfigurasi untuk qmake?

Apa yang harus dimasukkan ke dalam file * .pro dan apa yang harus dimasukkan ke dalam file * .pri?

Roman Byshko
sumber

Jawaban:

54

Sebuah .profile apa yang akan Anda jalankan qmake pada. Sebuah .prifile yang disertakan oleh .proberkas. Selain itu tidak banyak perbedaan di antara keduanya.

Contoh penggunaan bisa jadi jika Anda memiliki build berbeda yang membutuhkan opsi berbeda. Anda dapat meletakkan informasi bersama di .pro, sambil menunda opsi ke berbagai file .pri. Sedikit lebih banyak informasi, meskipun memang tidak lebih banyak, dapat ditemukan di sini .

Bart
sumber
75

Ada satu perbedaan utama antara penggunaan kembali yang ditargetkan:

.pro

Ini biasanya disebut File Proyek .

.pri

Ini biasanya disebut Project Include File .

Seperti yang Anda lihat di namanya, perbedaan utamanya adalah bahwa .prifile dimaksudkan untuk disertakan dalam file. Itu mirip dengan memasukkan modul dalam bahasa pemrograman untuk berbagi fungsionalitas, pada dasarnya.

Anda akan dapat menulis pengaturan dan kode umum ke dalam .prifile tersebut dan memasukkannya dari beberapa .profile saat diperlukan. Beginilah cara Anda menggunakannya dalam praktik:

foo.pri

FOO = BAR

hello.pro

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

world.pro

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

Dengan cara ini, kesamaan akan tersedia baik dalam hello.promaupun world.pro. Tidak banyak perbedaan dalam skenario ini, tetapi ketika fungsionalitas yang dibagikan semakin lama, ini akan menghemat beberapa tulisan serta sinkronisasi, perbaikan bug, dan sebagainya.

Anda bahkan dapat menyertakan .prifile di dalam .prifile lain jika Anda mau. Anda juga bisa memasukkan .prifile ke dalam subproyek yang berbeda, dll. Itu sangat bagus.

Sintaksnya sama, namun untuk file .prodan .pri. Pada akhirnya, Anda akan menjalankan qmake pada .profile - file tersebut, dan itu juga yang dihasilkan qmake untuk Anda jika Anda tidak memiliki file proyek dan ingin Anda gunakan qmake -project.

Anda dapat membaca lebih lanjut tentang fungsi include di sini :

termasuk (nama file)

Menyertakan konten file yang ditentukan oleh nama file ke dalam proyek saat ini pada titik di mana ia disertakan. Fungsi ini berhasil jika nama file disertakan; jika tidak maka gagal. File yang disertakan segera diproses.

Anda dapat memeriksa apakah file tersebut disertakan dengan menggunakan fungsi ini sebagai kondisi untuk suatu cakupan.

Hanya untuk menjadi lengkap, ada juga .prf Project Fitur File dan .prl Proyek Linker File , tetapi sebagai pengguna akhir, Anda tidak perlu berurusan dengan yang untuk saat ini.

lpapp
sumber
16

Format .prifile sama persis dengan format .profile. Perbedaan utamanya adalah salah satu tujuan; a .pro adalah apa yang diharapkan kebanyakan orang untuk menjalankan qmake secara langsung, sedangkan .pri akan disertakan oleh a .pro. Ketika Anda menginstruksikan qmake untuk menyertakan file lain, itu hanya memproses perintah dalam file itu seolah-olah ada di file saat ini.

Untuk Referensi: * .pro vs * .pri

AlphaMale
sumber
Saya benar-benar melihat pertanyaan ini dan tidak menyadari bahwa jawaban kedua sebenarnya menjawab pertanyaan saya .. :(
Roman Byshko