2009-07-16 32 views
11

मेरे पास कुछ नई परियोजनाएं हैं जिन पर मैं काम के अपने नए स्थान पर काम कर रहा हूं, जिसमें उनके बीच स्थिर रूप से लिंक्ड लाइब्रेरी निर्भरताओं का एक जटिल सेट है।(विज़ुअल) सी ++ परियोजना निर्भरता विश्लेषण

libs संख्या 40-50 के आसपास है और यह निर्धारित करना वास्तव में कठिन है कि संरचना का प्रारंभिक रूप से क्या मतलब था, पूर्ण निर्भरता मानचित्र पर स्पष्ट दस्तावेज नहीं है।

कोई भी डेटा ऐसे डेटा निकालने की सिफारिश करेगा?

मुमकिन है, सरल तरीके से, अगर किया था निम्नलिखित:

  1. जो पुस्तकालय इकाइयों को उन के भीतर

  2. सेट सभी सीपीपी/ज फ़ाइलें अनुरूप संबंधित पथ के सेट को परिभाषित उन संकलन इकाइयों

  3. कब्जा 1 आदेश # शामिल निर्भरता पेड़ से

किसी के पास नक्शा लिखने के लिए पर्याप्त जानकारी होगी - रिफैक्टर - और मानचित्र को फिर से हल करें, जब तक किसी ने कुछ ऑर्डर नहीं बनाया हो।

मुझे लगता है कि http://www.ndepend.com कुछ अच्छा है लेकिन यह विशेष रूप से .NET दुर्भाग्य से है।

मैंने डोक्सिजन कॉन्फ़िगरेशन के साथ कुछ स्थिर निर्भरता विश्लेषण को पूरा करने में सक्षम होने के बारे में कुछ पढ़ा है; क्या किसी ने कभी भी इस तरह के कार्य को पूरा करने के लिए सेवा में दबाया है?

CppDepend

उत्तर

11

This link की ओर जाता है। आपको उस उपकरण से बहुत उपयोगी जानकारी प्राप्त करने में सक्षम होना चाहिए।

+0

अब इस के लिए मैं क्या देख रहा था। मैं ईर्ष्यात्मक उत्पाद क्या कर सकता था के बारे में ईर्ष्या महसूस किया। हालांकि यह वास्तव में विरासत सी ++ के पहाड़ है, हमें इसे बनाए रखने की आवश्यकता है जो इस तरह के उपकरणों की आवश्यकता में सबसे अधिक गंभीर रूप से है। –

+2

हम्म ... शायद मैं घना हूं, लेकिन ऐसा लगता है कि CppDepend (2.8.5) फ़ाइल निर्भरताओं को देखने की अनुमति नहीं देता है (# निर्भरता शामिल करें)। यह जानकारी का एक धन दिखाता है, लेकिन परियोजना + वर्ग स्तर पर "केवल"। –

3

यह उपकरण पेड़ शामिल हैं का विश्लेषण करने के लिए उत्कृष्ट है: IncludeManager

+0

मृत-ईश लिंक वहाँ। –

2

IncludeFinder एक निःशुल्क टूल है जिसे मैंने सफलतापूर्वक पहले उपयोग किया है।

+0

धन्यवाद, यह बहुत पुराना दिखता है लेकिन कुछ लोगों ने इसका उल्लेख किया है, इसलिए यह एक ही चरण में अपना दिन का होना चाहिए। :) –

+1

के स्रोत के बाद से, मैं कुछ मामूली संशोधन कर सकता हूं जो मेरी तत्काल जरूरतों के अनुकूल हैं। लेकिन हाँ, यह चमकदार नहीं है;) – peterchen

1

मैं निर्भरता प्रबंधन की आवश्यकता वाले बड़े पैमाने पर सी ++ परियोजना के साथ काम करना शुरू कर रहा हूं, इसलिए स्वाभाविक रूप से मैं कुछ उपकरणों पर देख रहा हूं। मुझे यह देखने के लिए आश्चर्य हुआ कि CppDepend को यहां एक पसंदीदा लाइसेंस के रूप में पसंदीदा के रूप में चिह्नित किया गया था, जबकि एक लाइसेंस लाइसेंस € 300 है, जबकि IncludeManager £ 20 है .. और यह वही काम करता है। अगर किसी ने यहां या तो दोनों या तो दोनों औजारों का उपयोग किया है, तो क्या "अच्छा" कारण है कि मुझे CppDepend के लिए अतिरिक्त £ 280 (£ 1 ~ € 1) क्यों खर्च करना चाहिए?

* कृपया ध्यान दें कि मैं अपनी व्यक्तिगत प्रतिलिपि रखना चाहता हूं ताकि कंपनी के पास यह हो या न हो।

4

http://github.com/yuzhichang/cppdep जो भी आप चाहते हैं हो सकता है। मैंने इसे बड़े सी/सी ++ प्रोजेक्ट के घटकों/पैकेज/पैकेज समूहों के बीच निर्भरताओं का विश्लेषण करने के लिए लिखा था। यह dep_utils (adep/cdep/ldep) का एक पुनर्लेख है जो जॉन लेकोस की पुस्तक लार्ज-स्केल सी ++ सॉफ्टवेयर डिज़ाइन द्वारा प्रदान किया जाता है।

2

आप सहायता के रूप में DoxyS का उपयोग करने में सक्षम हो सकते हैं, जो जेनरेट किए गए दस्तावेज़ों के हिस्से के रूप में शामिल फ़ाइलों का प्रतिनिधित्व करने वाले अंगूर उत्पन्न करता है।

देखें: http://www.doxys.org

मार्टिन

संबंधित मुद्दे