दूसरों के लाभ के लिए, हालांकि मैं इसमें शामिल था कि मैंने क्या किया।
चूंकि आपको LNK4204 चेतावनियों को नजरअंदाज करने के लिए विजुअल स्टूडियो (मेरे मामले में 2010) नहीं मिल सकता है, मेरा दृष्टिकोण इसे वही देना था जो यह चाहता था: पीडीबी फाइलें। जैसा कि मैं अपने मामले में खुले स्रोत पुस्तकालयों का उपयोग कर रहा था, मेरे पास पहले से ही पीडीबी फ़ाइलों का निर्माण करने वाला कोड है।
लेकिन, डिफ़ॉल्ट सभी पीडीएफ फाइलों को एक ही नाम देना है: vc100.pdb मेरे मामले में। जैसा कि आपको प्रत्येक .lib के लिए एक .pdb की आवश्यकता होती है, यह एक समस्या पैदा करता है, खासकर यदि आप ImageMagik जैसी किसी चीज का उपयोग कर रहे हैं, जो लगभग 20 स्थिर .lib फाइलें बनाता है। आपके पास एक निर्देशिका में 20 काम करने योग्य फाइलें नहीं हो सकती हैं (जो आपके एप्लिकेशन के लिंकर से पुस्तकालयों में लिंक करने के लिए संदर्भ है) और सभी 20 .pdb फ़ाइलों को एक ही चीज़ कहते हैं।
मेरा समाधान यह था कि मैं अपनी स्थिर लाइब्रेरी फ़ाइलों को जाऊं और पुनर्निर्माण करूं, और PRO201ECT के संबंध में .pdb फ़ाइल को नाम देने के लिए VS2010 को कॉन्फ़िगर करूं। इस तरह, प्रत्येक .lib का एक समान नाम .pdb मिलता है, और आप अपनी परियोजना के उपयोग के लिए सभी LIB और PDBs को एक निर्देशिका में रख सकते हैं।
तो "डीबग" विन्यास के लिए, मैंने संपादित किया:
गुण-> कॉन्फ़िगरेशन गुण -> C / C ++ -> आउटपुट फ़ाइलें -> प्रोग्राम डेटाबेस फ़ाइल नाम से
$ (IntDir) कुलपति $ (PlatformToolsetVersion) .pdb
निम्नलिखित मान होना चाहिए:
$ (OutDir) कुलपति $ (PlatformToolsetVersion) डी $ (ProjectName) .pdb
अब इंटरमीडिएट डायरेक्टरी में कहीं न कहीं .pdb फाइल्स को आउटपुट डायरेक्टरी में लिखा जाता है, जहाँ .lib फाइल्स भी लिखी जा रही हैं, और सबसे महत्वपूर्ण बात यह है कि उन्हें डी + प्रोजेक्ट नाम के एक प्रत्यय के साथ नाम दिया गया है । इसका मतलब यह है कि प्रत्येक पुस्तकालय परियोजना एक .lib और एक परियोजना विशिष्ट .pdb को स्पष्ट करती है।
अब मैं अपनी सभी रिलीज़ .लिब फ़ाइल्स, मेरी डिबग .लिब फ़ाइल्स और डीबग .pdb फ़ाइलों को अपने डेवलपमेंट सिस्टम पर एक स्थान पर कॉपी करने में सक्षम हूँ, और वह प्रोजेक्ट जो डीबग मोड में उस 3 पार्टी लाइब्रेरी का उपयोग करता है, में pdb है फ़ाइलें इसे डिबग मोड में चाहिए।