मैं क्या संकलक और लिंकर PDB
फ़ाइलों क्रमशः (अर्थात दृश्य स्टूडियो में, Project Properties > C/C++ > Output Files > Program Database File Name
बनाम Project Properties > Linker > Debugging
) के बीच का अंतर है के रूप में उलझन में हो रही हूँ। मैंने ऑनलाइन जवाब खोजने की कोशिश की है और अब तक मुझे पता है (गलत हो सकता है) PDB
फ़ाइल को संकलक द्वारा obj
फ़ाइलों के लिए जेनरेट किया गया है जबकि PDB
फ़ाइलर द्वारा फ़ाइल बाइनरी (exe या dll) के लिए जेनरेट की गई है और यह है डीबगिंग के लिए इस्तेमाल किया जाता है।संकलक PDB फ़ाइल और लिंकर PDB फ़ाइल
यदि यह सत्य नहीं है, तो कृपया अंतर बताएं। किसी भी तरह से, जब मैं DLL
बना रहा हूं, तो मुझे क्या करना होगा जहां मेरे पास संकलक के साथ-साथ लिंकर के लिए आउटपुट PDB
फ़ाइल का चयन करने का विकल्प है और जब मैं एक LIB फ़ाइल बना रहा हूं तो क्या करना है जहां केवल संकलक PDB
फ़ाइलों को उत्पन्न करता है क्योंकि कोई लिंकिंग नहीं किया गया है।
पृष्ठभूमि: पुस्तकालयों/DLLs कई परियोजनाओं, जो तब डिबगिंग के लिए
PDB
फ़ाइलों की जरूरत द्वारा किया जाता है।lib
फ़ाइल के मामले में, कोई अस्पष्टता नहीं है क्योंकि केवल एकPDB
फ़ाइल उत्पन्न हुई है। लेकिनDLL
के मामले में, क्या मुझेPDB
फ़ाइलों को ठीक से डिबग करने या केवल लिंकर द्वारा जेनरेट की गई दोनों की आवश्यकता है?
(इस पोस्ट से पहले अपने अद्यतन, लेकिन यह अद्यतन करने के साथ ही लागू होता है) तो जब मैं 'lib' फ़ाइल (अर्थात, एक स्थिर पुस्तकालय), और केवल संकलक बनाने' pdb उत्पन्न कर सकते हैं 'चूंकि लिंकर की अब आवश्यकता नहीं है, क्या इसका मतलब यह है कि अब संकलक द्वारा उत्पन्न' पीडीबी 'फाइल डीबगिंग के लिए आवश्यक है? – Samaursa
.lib फ़ाइलें किसी प्रोग्राम के निष्पादन या डिबगिंग में शामिल नहीं हैं। वे केवल लिंकर के लिए इनपुट हैं। एक lib फ़ाइल में उचित 'सामान' या तो बाइनरी (स्थिर पुस्तकालय के मामले में) का हिस्सा बनता है या डीएलएल (आयात पुस्तकालय के मामले में) के गतिशील लिंक बनाने के लिए उपयोग किया जाता है। इनमें से किसी भी मामले में, .pdb फ़ाइल जिसे आपको डिबगिंग के लिए चाहिए, वह लिंकर द्वारा उत्पादित किया गया है जब वास्तविक .exe या .dll फ़ाइल उत्पन्न होती है। –
ग्रेट, माइकल को विस्तारित करने के लिए धन्यवाद, मैं आगे बढ़ूंगा और इसे सही उत्तर के रूप में देखूंगा। यद्यपि हम इस विषय पर _are_ हैं, अगर आप इसका उत्तर दे सकते हैं। हावोक एसडीके स्थिर रूप से जुड़ा हुआ है, और इसकी सभी पुस्तकालय अपनी संबंधित पीडीबी फाइलों के साथ आते हैं। दिलचस्प बात यह है कि, यदि आप एक ही निर्देशिका में उनके साथ 'पीडीबी' फाइलों के बिना पुस्तकालयों के खिलाफ लिंक करते हैं, तो विजुअल स्टूडियो चेतावनी का एक टन देता है कि 'डीबग जानकारी गुम है, जैसे कि कोई डीबग जानकारी प्रदान नहीं की गई है' (मैं हूं पैराफ्रेशिंग) – Samaursa