Sự khác biệt giữa *.pro
và *.pri
các tệp cấu hình cho qmake là gì?
Những gì nên đi vào tệp * .pro và những gì nên đi vào tệp * .pri?
Sự khác biệt giữa *.pro
và *.pri
các tệp cấu hình cho qmake là gì?
Những gì nên đi vào tệp * .pro và những gì nên đi vào tệp * .pri?
Câu trả lời:
Một .pro
tệp là những gì bạn sẽ chạy QMake. Một .pri
tệp được bao gồm bởi một .pro
tệp. Ngoài ra, không có nhiều sự khác biệt giữa cả hai.
Việc sử dụng ví dụ có thể là nếu bạn có các bản dựng khác nhau cần các tùy chọn khác nhau. Bạn có thể đưa thông tin được chia sẻ vào tệp .pro trong khi hoãn các tùy chọn cho các tệp .pri khác nhau. Bạn có thể tìm thấy thêm một chút thông tin, mặc dù phải thừa nhận là không nhiều hơn ở đây .
Có một điểm khác biệt chính giữa việc tái sử dụng được nhắm mục tiêu của chúng:
Đây thường được gọi là Tệp Dự án .
Đây thường được gọi là Tệp Bao gồm Dự án .
Như bạn có thể thấy trong tên của chúng, sự khác biệt chính là .pri
tệp có nghĩa là tệp bao gồm. Điều đó tương tự như bao gồm các mô-đun trong ngôn ngữ lập trình để chia sẻ chức năng, về cơ bản.
Bạn sẽ có thể ghi các cài đặt và mã chung vào các .pri
tệp đó và bao gồm chúng từ một số .pro
tệp khi có nhu cầu. Đây là cách bạn sẽ sử dụng nó trong thực tế:
FOO = BAR
...
include($$PWD/foo.pri)
...
...
include($$PWD/foo.pri)
...
Bằng cách này, sự tương đồng sẽ được cung cấp cả trong hello.pro
cũng như world.pro
. Nó không tạo ra nhiều khác biệt trong trường hợp này, nhưng khi chức năng được chia sẻ dài hơn, nó sẽ giúp bạn tiết kiệm một số văn bản cũng như đồng bộ hóa, sửa lỗi, v.v.
Bạn thậm chí có thể bao gồm một .pri
tệp bên trong một .pri
tệp khác nếu bạn muốn. Bạn cũng có thể bao gồm .pri
các tệp trong các dự án con khác nhau, v.v. Nó rất hay.
Tuy nhiên, cú pháp giống nhau cho cả tệp .pro
và .pri
tệp. Cuối cùng, bạn sẽ chạy qmake trên các .pro
tệp và đó cũng là những gì qmake tạo ra cho bạn nếu bạn chưa có tệp dự án và bạn định sử dụng qmake -project
.
Bạn có thể đọc thêm về hàm bao gồm tại đây :
bao gồm (tên tệp)
Bao gồm nội dung của tệp được chỉ định bởi tên tệp vào dự án hiện tại tại điểm mà nó được đưa vào. Hàm này thành công nếu tên tệp được bao gồm; nếu không thì nó không thành công. Tệp bao gồm được xử lý ngay lập tức.
Bạn có thể kiểm tra xem tệp có được bao gồm hay không bằng cách sử dụng hàm này làm điều kiện cho phạm vi.
Chỉ cần được hoàn thành, cũng có những .prf
dự án Feature tập tin và .prl
Dự án Linker tập tin , nhưng như một người dùng cuối, bạn không cần phải thỏa thuận với điều đó vào lúc này.
Định dạng của .pri
tệp hoàn toàn giống với định dạng của .pro
tệp. Sự khác biệt chính là một trong những ý định; .pro là những gì hầu hết mọi người mong đợi để chạy qmake trực tiếp, trong khi .pri được đưa vào bởi .pro. Khi bạn hướng dẫn qmake bao gồm một tệp khác, nó chỉ xử lý các lệnh trong tệp đó như thể nó đang ở trong tệp hiện tại.
Để tham khảo: * .pro so với * .pri