मैं एक ऐसी परियोजना का निर्माण कर रहा हूं जो एकाधिक साझा पुस्तकालयों और निष्पादन योग्य फाइलें बनाता है। इन बाइनरी बनाने के लिए उपयोग की जाने वाली सभी स्रोत फ़ाइलें एक एकल/src निर्देशिका में हैं। तो यह पता लगाने के लिए स्पष्ट नहीं है कि कौन सी स्रोत फ़ाइलों का उपयोग प्रत्येक बाइनरी बनाने के लिए किया गया था (कई से कई संबंध हैं)।* .c और * .h फ़ाइलों को कैसे ढूंढें जिनका उपयोग बाइनरी बनाने के लिए किया गया था?
मेरा लक्ष्य एक ऐसी स्क्रिप्ट लिखना है जो प्रत्येक बाइनरी के लिए सी फाइलों के एक सेट को पार्स करे और सुनिश्चित करें कि केवल सही कार्य ही उनसे बुलाए जाते हैं।
एक विकल्प मेकफ़ाइल से इस जानकारी को निकालने का प्रयास करने लगता है। लेकिन यह जेनरेट की गई फाइलों और शीर्षकों (शामिल करने पर निर्भरता के कारण) के साथ अच्छी तरह से काम नहीं करता है।
कॉल ग्राफ़ ब्राउज़ करने के लिए एक और विकल्प हो सकता है, लेकिन यह जटिल हो जाएगा, क्योंकि फ़ंक्शन पॉइंटर्स का उपयोग करके बहुत सारे फ़ंक्शन बुलाए जाते हैं।
कोई अन्य विचार?
जिज्ञासा से बाहर: आप यह क्यों कोशिश कर रहे हैं? – stefan
वितरण पैकेज तंत्र सभी निर्भरताओं के बारे में जानता है ... –
क्या आपके पास "सही कार्य कहलाता है" का सटीक परिभाषा है? यह स्पष्ट नहीं है और यह आसान नहीं है। –