2009-07-16 10 views
127

समस्या: में मेरे पास एक बड़ी विज़ुअल सी ++ प्रोजेक्ट है जो मैं विजुअल स्टूडियो 2010 में माइग्रेट करने का प्रयास कर रहा हूं। यह विभिन्न स्रोतों और विभिन्न प्रकार के सामानों का एक बड़ा मिश्रण है। उम्र। मुझे समस्याएं आ रही हैं क्योंकि कुछ winsock.h और winsock2.h दोनों शामिल हैं।विजुअल स्टूडियो

प्रश्न: विजुअल स्टूडियो सी ++ स्रोत फ़ाइल के लिए #include पदानुक्रम प्रदर्शित करने के लिए कौन से टूल्स और तकनीकें हैं?

मैं के बारे में cl /P पूर्वप्रक्रमक उत्पादन प्राप्त करने के लिए पता है, लेकिन है कि स्पष्ट रूप से नहीं है दिखाने के जो फ़ाइल जो अन्य फ़ाइलों भी शामिल है (और इस मामले में /P उत्पादन 376,932 लाइनों लंबा है 8-)

एक आदर्श दुनिया में मैं एक श्रेणीबद्ध प्रदर्शन जिनमें से फ़ाइलें जो अन्य फ़ाइलों में शामिल हैं, लाइन नंबर के साथ करना चाहते हैं तो मैं स्रोतों में कूद कर सकते हैं:

source.cpp(1) 
    windows.h(100) 
    winsock.h 
    some_other_thing.h(1234) 
    winsock2.h 

उत्तर

179

एक सेटिंग है:

परियोजना सेटिंग्स -> विन्यास गुण -> C/C++ -> उन्नत -> दिखाएं

कि पेड़ उत्पन्न होगा भी शामिल है। यह कंपाइलर स्विच /showIncludes

+0

यही वही है जो मैं ढूंढ रहा था (रेखा संख्या को छोड़कर, लेकिन आपके पास सब कुछ नहीं हो सकता है)। मुझे मूर्खतापूर्ण, मैं प्रीप्रोसेसर विकल्पों के तहत देख रहा था। 8-) धन्यवाद! – RichieHindle

+0

उत्कृष्ट - मुझे वह याद आया था। –

+14

नोट: आउटपुट विंडो में पदानुक्रम देखा जा सकता है। – CannibalSmith

4

Here एक अच्छा 3 हिस्सा है वाई, एफओएसएस उपकरण। आप एक्सएमएल में परिणाम निर्यात कर सकते हैं, जिसमें घटनाओं और रेखा संख्याओं की संख्या शामिल होगी।

+0

यह कहता है कि यह वीसी 7 का समर्थन करता है, क्या यह 2005/2008 का समर्थन करता है? यह थोड़ा सा दिखता है ... –

2

सीएल/पी आपको लाइन नंबर दिखाना चाहिए, ताकि आप इस संदर्भ को बता सकें कि हेडर फ़ाइल कहां से शामिल की जा रही है।

यदि आप के साथ लाइनों ...

grep "^ # लाइन" file.i

बाहर grep ... तो आप क्या फाइलों में सामने आईं की एक बहुत साफ संकेत होना चाहिए प्रीप्रोसेसर द्वारा आदेश।

यदि यह एक घटना से दूर है तो यह एक बहुत तेज़ निदान होना चाहिए।

+2

निश्चित रूप से, लेकिन यह मुझे बिना पदानुक्रम के, अनियंत्रित आउटपुट की आठ हजार लाइनें देता है। – RichieHindle

+0

मैं काफी लंबे समय तक सीएल/पी आउटपुट देख रहा था, और सोच रहा था कि नौकरी के लिए एक बेहतर उपकरण था या नहीं। अब मैंने पाया है कि वहां बहुत अच्छा है। सवाल * सामान्य है, और उत्तर हमेशा के लिए एसओ पर होंगे, दूसरों के लिए ढूंढने के लिए। – RichieHindle

15

संकलक एक/शो शामिल करता है स्विच का समर्थन करता है - यह आपको लाइन नंबर नहीं देता है, लेकिन इसमें एक विस्तृत व्यापक दृश्य दे सकता है जिसमें से कहां शामिल है।

यह परियोजना सेटिंग्स के अंतर्गत है -> कॉन्फ़िगरेशन गुण -> सी/सी ++ -> उन्नत -> दिखाएँ शामिल है।

+0

+1 बहुत धन्यवाद! (लेकिन मुझे डर है कि xtofl जल्दी होने के लिए स्वीकार्य हो जाता है)। – RichieHindle

15

हमें एक बहुत शक्तिशाली उपकरण होने के लिए IncludeManager मिला है। यह मुफ़्त नहीं है (लेकिन महंगा नहीं है) और इससे हमें अपने मुद्दों को शामिल करने की अनुमति मिल गई है और हमारे संकलन समय को 50 मिनट से 8 मिनट तक छोड़ दिया गया है जिसमें बड़े हिस्से को छीनकर हम शामिल नहीं थे।

+4

हाँ! मैं अपमानजनक फ़ाइल पर IncludeManager चला गया, और यह एक ग्राफ का उत्पादन किया जो मुझे जोर से हंसते हुए बना दिया। मेरी गणना से मुझे पूरी चीज देखने के लिए 400 "मॉनीटर की आवश्यकता होगी। मुझे लगता है कि हम मदद करने के लिए अपनी शक्ति से परे हैं। 8-) – RichieHindle

5

जीसीसी की पदानुक्रमित विशेषता के रूप में उतना अच्छा नहीं है, जो त्रुटि के मामले में प्रत्यक्ष-रेखा समावेशन पदानुक्रम दिखाता है।वीएस में "शो शामिल" विकल्प सबकुछ दिखाता है, जो ओवरकिल होता है जब पदानुक्रम में डीबगिंग में फ़ाइल समस्याएं शामिल होती हैं।

+0

मैं इसे 5 साल पहले से ही इंतजार कर रहा हूं, जिसे मैंने मिंगव के साथ उपयोग किया था। – fantastory

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