मुझे अपने वर्तमान प्रोजेक्ट के लिए प्रलेखन लिखना आवश्यक है जो सभी .c फ़ाइलों को सूचीबद्ध करता है और प्रत्येक के लिए प्रत्येक .h फ़ाइल सूचीबद्ध करता है जो उस फ़ाइल द्वारा सीधे या परोक्ष रूप से शामिल होता है।स्वचालित रूप से सी निर्भरताओं की खोज
यह एक बड़ी परियोजना है, और यद्यपि हमारे पास मेकफ़ाइल है जो सैद्धांतिक रूप से यह जानकारी है, वे मेकफ़ाइल कभी-कभी गलत होते हैं (हमने इस परियोजना को किसी अन्य कंपनी से विरासत में मिला है)। हमारे परिवर्तनों को वास्तव में पुन: संकलन में प्रतिबिंबित करने के लिए हमें अक्सर make clean ; make
करना पड़ता था, इसलिए मैं इन मेकफ़ाइल पर भरोसा नहीं करना चाहता हूं।
तो क्या ऐसा कोई उपकरण है जो हमें इसे एक .c फ़ाइल का नाम देने और पथ शामिल करने देता है और यह हमें उन सभी .h फ़ाइलों को बताता है जो सीधे या अप्रत्यक्ष रूप से .c फ़ाइल द्वारा शामिल हैं? हमारे पास
#define my_include "some_file.h"
#include my_include
जैसे अजीब कुछ भी नहीं है, इसलिए उपकरण को सही होने की आवश्यकता नहीं है। कुछ भी जो .c और .h फ़ाइलों को नियमित रूप से शामिल करने के लिए खोजता है, वह पर्याप्त होगा।
आप एक अतिरिक्त हैडर, जिससे सभी स्रोत फ़ाइलों का निर्भरता को बदलने शामिल करने के लिए एक हैडर को बदल सकता है, लेकिन अपनी निर्भरता सूची अपडेट नहीं होगा। इसे पूरी तरह से प्राप्त करना काफी स्पष्ट रूप से आईआईआरसी हो सकता है, लेकिन अच्छी शुरुआत है कि आप अपने सभी शीर्षकों को निर्भरता की निर्भरताओं में शामिल करना चाहते हैं। –
ओह, और प्रदर्शन नोट के लिए कि यदि कोई फ़ाइल बदलती है तो यह सभी फ़ाइलों को पुन: संसाधित करती है। तो हो सकता है कि आप एकाधिक निर्भर फाइलें (शायद एक प्रति स्रोत फ़ाइल भी) चाहें।अंत में, ध्यान दें कि आप आम तौर पर -एमएम का उपयोग कर सकते हैं, जो सिस्टम हेडर पर निर्भरता को छोड़ देता है, क्योंकि आप उनको नहीं बदलेंगे। –
असल में मैंने झूठ बोला - मैं हमेशा -एमएम का उपयोग करता हूं :) –