Qt: * .pro so với * .pri


87

Sự khác biệt giữa *.pro*.pricá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:


53

Một .protệp là những gì bạn sẽ chạy QMake. Một .pritệp được bao gồm bởi một .protệ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 .


74

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:

.pro

Đây thường được gọi là Tệp Dự án .

.pri

Đâ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à .pritệ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 .pritệp đó và bao gồm chúng từ một số .protệp khi có nhu cầu. Đây là cách bạn sẽ sử dụng nó trong thực tế:

foo.pri

FOO = BAR

xin chào.pro

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

world.pro

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

Bằng cách này, sự tương đồng sẽ được cung cấp cả trong hello.procũ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 .pritệp bên trong một .pritệp khác nếu bạn muốn. Bạn cũng có thể bao gồm .pricá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.pritệp. Cuối cùng, bạn sẽ chạy qmake trên các .protệ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.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.


16

Định dạng của .pritệp hoàn toàn giống với định dạng của .protệ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


Tôi thực sự thấy câu hỏi này và đã không nhận thấy rằng thứ hai câu trả lời thực sự trả lời câu hỏi của tôi .. :(
La Mã Byshko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.