Tôi bắt buộc phải viết tài liệu cho dự án hiện tại của mình liệt kê tất cả các tệp .c và mỗi tệp liệt kê mọi tệp .h được tệp trực tiếp hoặc gián tiếp bao gồm.Tự động phát hiện phụ thuộc C
Đây là một dự án lớn, và mặc dù chúng tôi có Makefiles về mặt lý thuyết có thông tin này, những Makefiles đôi khi không chính xác (chúng tôi kế thừa dự án này từ một công ty khác). Chúng tôi thường phải thực hiện một số make clean ; make
để các thay đổi của chúng tôi thực sự được phản ánh trong việc biên dịch lại, vì vậy tôi không muốn dựa vào các Makefiles này. Vì vậy, có một công cụ cho phép chúng tôi cung cấp cho nó tên của một tập tin .c và một đường dẫn bao gồm và có nó cho chúng tôi biết tất cả các tập tin .h được trực tiếp hoặc gián tiếp bao gồm bởi các tập tin .c? Chúng tôi không có bất kỳ điều gì lạ như
#define my_include "some_file.h"
#include my_include
vì vậy công cụ không cần phải hoàn hảo. Bất kỳ thứ gì tìm kiếm tệp .c và .h trong một đường dẫn bao gồm để bao gồm thông thường sẽ là đủ tốt.
Bạn có thể thay đổi một tiêu đề để bao gồm một tiêu đề phụ, do đó thay đổi phụ thuộc của tất cả các tập tin nguồn, nhưng danh sách phụ thuộc của bạn sẽ không được cập nhật. Bắt nó hoàn toàn đúng có thể khá khó sử dụng IIRC, nhưng một khởi đầu tốt là bao gồm tất cả các tiêu đề của riêng bạn trong các phụ thuộc của phụ thuộc. –
Ồ, và để lưu ý hiệu suất, việc này sẽ xử lý lại tất cả các tệp nếu có bất kỳ tệp nào thay đổi. Vì vậy, bạn có thể muốn có nhiều tệp phụ thuộc (có thể thậm chí một tệp cho mỗi tệp nguồn).Cuối cùng, lưu ý rằng bạn thường có thể sử dụng -MM, bỏ qua các phụ thuộc vào các tiêu đề hệ thống, vì bạn sẽ không thay đổi chúng. –
Thực ra tôi đã nói dối - Tôi luôn sử dụng -MM bản thân mình –