Tôi có stucture direcory sau:bao gồm các tệp tiêu đề - liên quan đến thư mục hiện tại hoặc để bao gồm các thư mục?
src
+-- lib1
+-- lib1.h
+-- lib2
+-- lib2.h
Cả lib1
và lib2
đang gonna được phân phối (cài đặt). lib2
tận dụng lib1
, vì vậy nó cần một số bao gồm:
#include "../lib1/lib1.h" // 1
#include "lib1/lib1.h" // 2
#include <lib1/lib1.h> // 3
(1) là con đường thẳng về phía trước, nhưng là rất unflexible. (2) là cách tôi sử dụng tại thời điểm này, nhưng hệ thống xây dựng cần phải biết rằng src
cần phải được thêm vào đường dẫn bao gồm. (3) có vẻ tốt nhất cho tôi theo khía cạnh phân phối vì sau đó có thể giả định rằng tiêu đề nằm ở vị trí chuẩn, nhưng không quá rõ ràng đối với tôi cách hệ thống xây dựng xử lý (trong trường hợp này, lib1
cần phải được cài đặt trước lib2
có thể được biên dịch).
Cách được khuyến nghị là gì?
Bạn có ý nghĩa gì khi "cài đặt" một lib? Đây có phải là thư viện tĩnh hoặc động không? Nếu nó là tĩnh thì chỉ cần tạo một cấu trúc kho đẹp và thêm các thư mục này vào đường dẫn include của bạn. –
Đây là tất cả việc triển khai cụ thể. Một số hệ thống thậm chí không có thư mục! –
@EdS., Ý tôi là: Các tập tin header và libs được sao chép ở đâu đó (vị trí chuẩn, '/ usr/local/{lib, include}') để có thể sử dụng chúng trong các dự án khác. –