10

मैंने एमएसडीएन में प्रलेखन पढ़ा, लेकिन अंत में मुझे एक स्पष्ट विचार नहीं मिला कि वास्तव में उनके बीच व्यावहारिक अंतर क्या है। दोनों को * * cpp फ़ाइल के शीर्ष पर जोड़े जाने के लिए stdafx.h की आवश्यकता होती है।विजुअल स्टूडियो में "प्रीकंपिल्ड हेडर बनाएं" (/ वाईसी) और "प्रीकंपिल्ड हेडर का उपयोग करें" (/ यूयू) के बीच क्या अंतर है?

मैं वीएस 2008 का उपयोग कर रहा हूं।

क्या कोई चीजों को स्पष्ट करने में मदद कर सकता है?

+0

प्रलेखन का एक लिंक प्रासंगिक हो सकता है 'बनाएं' मान सेट करें। मामूली बेतुका जवाब होगा: * एक का उपयोग ** ** प्रीकंपिल्ड हेडर बनाने के लिए किया जाता है, दूसरा ** ** ** * का उपयोग करें (यानी एक कंपाइलर नियमित हेडर पढ़ता है और प्रीकंपील्ड हेडर उत्पन्न करता है, दूसरा संकलक के लिए precompiled शीर्षलेख उत्पन्न नहीं करने के लिए, बल्कि इसका उपयोग करें। –

उत्तर

11

ठीक है, मुझे लगता है कि आपको पहले प्रीकंपिल्ड हेडर के उद्देश्य को समझना होगा। बड़ी परियोजनाओं में, उदाहरण के लिए एक क्लाइंट एक्सटेंशन द्वारा आवश्यक सभी शीर्षकों को संसाधित करने में उम्र लग सकती है, इसलिए कुछ लोग अपनी पुस्तकालयों के साथ .pch फ़ाइलों को वितरित करना पसंद करते हैं। .pch फ़ाइलों को उत्पन्न करने के लिए, आप /Yc कंपाइलर ध्वज का उपयोग करते हैं और वह व्यक्ति जो आपकी लाइब्रेरी का उपभोग करना चाहता है, /Yu ध्वज सेट करेगा। विवरण के लिए here और here देखें।

+0

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

+0

@ बेनवोइग वास्तव में, शायद यह एक आम प्रथा नहीं है। मैंने इसे कसकर सीलबंद बैंकिंग वातावरण में देखा है, जहां कोड बेस था विशाल और क्लाइंट एक्सटेंशन सख्ती से इस कंपनी द्वारा वितरित सामानों से प्राप्त किए गए थे। अगर आपको लगता है कि इस उत्तर में सुधार की जरूरत है तो कृपया एक संपादन का सुझाव दें। –

21

कैसे दृश्य स्टूडियो में PCH फ़ाइलों का उपयोग करने के लिए की संक्षिप्त सारांश:

  • परियोजना के सभी cpp फ़ाइलें stdafx.h शामिल करने में
  • परियोजना का चयन करें (आप इस कुछ और यदि आप चाहें तो करने के लिए बदल सकते हैं) समाधान एक्सप्लोरर और Properties -> C++ -> Precompiled Headers 'उपयोग करें' के लिए 'प्रीकंपलाइल्ड हेडर बनाएं' का उपयोग करें/प्रयोग करें। लागू करें
  • मारो संपत्ति पन्ने अभी भी समाधान एक्सप्लोरर में stdafx.cpp चयन दिखाए जाते हैं जबकि और करने के लिए
+2

+1 साफ़, सरल और बिंदु जवाब। – CodeAngry

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