Câu trả lời:
Trong dự án mà bạn muốn #include tệp tiêu đề từ một dự án khác , bạn sẽ cần thêm đường dẫn của tệp tiêu đề vào phần Thư mục Bao gồm Bổ sung trong cấu hình dự án.
Để truy cập cấu hình dự án:
Để bao gồm tệp tiêu đề , chỉ cần viết như sau vào mã của bạn:
#include "filename.h"
Lưu ý rằng bạn không cần chỉ định đường dẫn ở đây, vì bạn đã bao gồm thư mục trong Thư mục Bao gồm Bổ sung rồi, vì vậy Visual Studio sẽ biết nơi cần tìm.
Nếu bạn không muốn thêm mọi vị trí tệp tiêu đề trong cài đặt dự án, bạn chỉ có thể bao gồm một thư mục cho đến một điểm và sau đó #include liên quan đến điểm đó:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
Nếu sử dụng thư viện tĩnh (tức là tệp .lib), bạn cũng sẽ cần thêm thư viện vào đầu vào của trình liên kết, để tại thời điểm liên kết, các ký hiệu có thể được liên kết với nhau (nếu không bạn sẽ nhận được một ký hiệu chưa được giải quyết):
#include "proj2\include.h"
. Có nhiều dự án cho mỗi giải pháp dường như rất hướng đến các ngôn ngữ NET, vì chúng được sử dụng rất khác nhau. Tuy nhiên, để tìm ra một cách tuyệt vời để khắc phục điều này cho các dự án C ++.
#include
không liên quan gì đến các dự án - nó chỉ nói với bộ tiền xử lý "đặt nội dung của tệp tiêu đề ở đây". Nếu bạn cung cấp cho nó một đường dẫn trỏ đến đúng vị trí (có thể là một đường dẫn tương đối, như ../your_file.h), nó sẽ được đưa vào một cách chính xác.
Tuy nhiên, bạn sẽ phải tìm hiểu về các thư viện (thư viện tĩnh / động) để làm cho các dự án như vậy liên kết đúng cách - nhưng đó là một câu hỏi khác.
Vì cả hai dự án đều thuộc cùng một giải pháp, nên có một cách đơn giản hơn cho tệp bao gồm và trình liên kết như được mô tả trong https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp- các dự án? view = vs-2019 :
#include "../libProject/libHeader.h"
:).Bạn cần đặt đường dẫn đến tiêu đề trong thuộc tính dự án để trình biên dịch tìm ở đó khi cố gắng tìm (các) tệp tiêu đề. Tôi không thể nhớ chính xác vị trí, nhưng hãy xem các thuộc tính của Dự án và bạn sẽ thấy nó.
Cố gắng tránh các tham chiếu đường dẫn hoàn chỉnh trong chỉ thị #include, cho dù chúng là tuyệt đối hay tương đối. Thay vào đó, hãy thêm vị trí của thư mục bao gồm của dự án khác trong cài đặt dự án của bạn. Chỉ sử dụng các thư mục con trong tham chiếu đường dẫn khi cần thiết. Bằng cách đó, bạn sẽ dễ dàng di chuyển mọi thứ hơn mà không cần phải cập nhật mã của mình.
Mở rộng câu trả lời của @ Benav, cách tiếp cận ưa thích của tôi là:
$(SolutionDir)
vào Thư mục Bao gồm Bổ sungBây giờ bạn có thể bao gồm các tiêu đề từ các dự án được tham chiếu của mình như vậy:
#include "OtherProject/Header.h"
Ghi chú:
#include
s, nhưng nó thiết lập các phụ thuộc xây dựng chính xác mà bạn có thể muốn.