Sự khác biệt giữa “Thư mục bao gồm” và “Thư mục bao gồm bổ sung”


94

Trong thuộc tính cấu hình của dự án của tôi, trong "thư mục VC ++" có một mục nhập cho "Bao gồm các thư mục". Nhưng trong tùy chọn "C / C ++", có một mục nhập khác được gọi là "Thư mục Bao gồm Bổ sung". Điều tương tự cũng xảy ra với các thư mục thư viện.

Sự khác biệt giữa hai mục này là gì?

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Câu trả lời:


48

Đây là điều khó xử đã được giới thiệu trong VS2010. Cài đặt Thư mục VC ++ từng được đặt trong Công cụ + Tùy chọn, Dự án và Giải pháp, Thư mục VC ++. Cài đặt chung áp dụng cho mọi dự án được tạo trên máy. Nó vẫn ở đó nhưng chỉ ra rằng bây giờ bạn nên thay đổi nó trong cài đặt dự án của mình. Một tác dụng phụ của việc đại tu động cơ xây dựng trong VS2010, cho phép xây dựng bằng msbuild. Việc xóa cài đặt cho mỗi dự án sẽ là hợp lý nhưng điều đó sẽ phá vỡ quá nhiều dự án hiện có.

Do đó, có lẽ tốt nhất là bạn nên coi cài đặt Thư mục VC ++ là cài đặt mặc định của máy. Nó được tự động cài đặt trước bởi trình cài đặt VS. Tinker với nó chỉ khi bạn cần một thứ tự tìm kiếm thư mục bất thường, đặt các vị trí tùy chỉnh cuối cùng. Rất bất thường khi làm như vậy.

Tuy nhiên, nó hoạt động. Và cuối cùng nó đã được tận dụng. Trao quyền cho cài đặt Bộ công cụ nền tảng trong VS2012 trở lên. Trình biên dịch khác nhau, trình liên kết khác nhau, thư mục #include khác nhau, đường dẫn tìm kiếm trình liên kết khác nhau. Được sửa đổi chỉ với một cài đặt, tốt đẹp.


3
Hmmm ... Đúng các tùy chọn toàn cầu được lưu trong phần này - nhưng đây là bảng thuộc tính Microsoft.Cpp.Win32.uservà chỉ cái này. Nếu bạn chỉnh sửa mục nhập "Thư mục VC ++" khi dự án đang hoạt động hoặc một trang thuộc tính khác, thì thay đổi sẽ vẫn tồn tại trong .vcxprojtệp hoặc trong .propstệp tương ứng và sẽ không có tính toàn cầu hoặc toàn người dùng.
Martin Ba

25

Các Bao gồm Thư mục tương ứng với các biến môi trường INCLUDE.

Cài đặt thư mục hiển thị trong cửa sổ là các thư mục mà Visual Studio sẽ tìm kiếm bao gồm các tệp được đề cập đến trong tệp mã nguồn của bạn. Tương ứng với biến môi trường BAO GỒM.

Trong khi các Thư mục Bao gồm Bổ sung được chuyển qua một đối số dòng lệnh (tức là \Itùy chọn).


19

CẤU HÌNH BAO GỒM BAO GỒM

Thư mục VC ++: Bao gồm các thư mục

  • giá trị này được kế thừa từ biến môi trường INCLUDE Windows được định nghĩa bên ngoài Visual Studio
    • các biến môi trường có thể là: toàn cục đối với máy tính hoặc có phạm vi cấp người dùng
    • Các biến INCLUDELIBmôi trường được tạo khi Microsoft Windows SDK được cài đặt với Visual Studio .

C / C ++: Thư mục Bao gồm Bổ sung

  • là cài đặt cấp độ dự án ... bạn sẽ phải xác định giá trị này cho mọi dự án trong giải pháp của bạn
  • giá trị này có thể được duy trì để kiểm soát nguồn

LƯU Ý BỔ SUNG

Tôi nên sử dụng cái nào?

Quyết định sử dụng Thư mục Bao gồm hoặc Thư mục Bao gồm Bổ sung sẽ phụ thuộc vào quá trình phát triển của tổ chức bạn. Theo tôi, điều quan trọng hơn là:

  • rằng bạn có thể tạo lại môi trường phát triển một cách nhất quán và đáng tin cậy (hãy nghĩ: chuyển giao mã nguồn cho một nhà phát triển khác)
  • đối với các nhà phát triển trong một tổ chức, sử dụng một cách tiếp cận nhất quán

Lưu ý về Macro

  • Các macro cấu hình dự án C ++ (không nên nhầm lẫn với #definechỉ thị tiền xử lý C ++ ) kế thừa nội dung từ các nguồn khác nhau. Macro như ...
    • $(Include)kế thừa các giá trị của chúng từ các biến môi trường Windows
    • $(OutDir)kế thừa các giá trị của chúng từ Visual Studio IDE

NGƯỜI GIỚI THIỆU

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.