Thursday, 15 September 2011

What is the best way to eliminate MS Visual C++ Linker warning : "warning LNK4221"? -


मेरी एक सीपीपी स्रोत फ़ाइल है जो #if / #endif कुछ बिल्डों में पूरी तरह से संकलन करने के लिए हालांकि, यह निम्न चेतावनी उत्पन्न करता है।

  चेतावनी LNK4221: कोई सार्वजनिक प्रतीक नहीं मिला; संग्रह सदस्य दुर्गम हो जाएगा  

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

इस चेतावनी से छुटकारा पाने का सबसे अच्छा तरीका क्या है (बिना चेतावनी को दबाने के लिंकर कमांड लाइन)?

एफडब्ल्यूआईडब्ल्यू, मुझे लिंकर कमांड लाइन पर चेतावनी को दबाने से यह कैसे करना है, यह जानने में दिलचस्पी होगी, लेकिन मेरे सारे प्रयासों को लिंकर द्वारा अभी तक अनदेखा किया जा रहा है और अभी भी त्रुटि उत्पन्न करता है।

एक अन्य आवश्यकता: हमारे निर्माण विन्यास में से एक एक थोक निर्माण (एकता की तरह) के बाद से फ़िक्स व्यक्तिगत फ़ाइल बिल्ड या एकता निर्माण (सीपीपी फ़ाइल निर्माण को संयोजित) करने में सक्षम होना चाहिए एक एकल मास्टर एकता फ़ाइल की बजाय बल्क फाइलों का निर्माण लेकिन समूह)।

एक अज्ञात नेमस्पेस का प्रयोग करें:

  नामस्थान {char dummy; };  

ऐसे नेमस्पेस के भीतर का प्रतीक बाहरी संबंध है, इसलिए निर्यात तालिका में कुछ होगा। दूसरी ओर, नाम स्थान का नाम ही प्रत्येक अनुवाद इकाई के लिए अलग होगा (आप इसे "बेतरतीब ढंग से तैयार" के रूप में सोच सकते हैं), इसलिए कोई संघर्ष नहीं।


No comments:

Post a Comment