सामान्य उत्तर यह है कि आप नहीं कर सकते हैं, लेकिन कुछ चालें आप कर सकते हैं।
उदाहरण के लिए, objcopybinutils से एक वस्तु उपसर्ग-प्रतीकों ध्वज का उपयोग करके हर प्रतीक पर एक उपसर्ग कॉपी, लेकिन डाल करने की क्षमता है। चीजों को उपसर्ग करना अक्सर गरीब व्यक्ति के नामस्थान होता है और संघर्ष से बचने का एक "ठीक" तरीका है।
प्रयोग बहुत सरल, कुछ इस तरह है:
objcopy --prefix-symbols "__mylib_" object.o new_object.o
नोट: हाँ, यह .so भी फाइलों के साथ काम करता है।
नोट 2: यह पूरी तरह से C++ नाम मैंगलिंग को तोड़ देगा, इसलिए केवल सी शैली एपीआई के साथ लाइब्रेरी पर इसका प्रयास करें। चूंकि आप नामस्थान जोड़ने के बारे में बात कर रहे हैं, जहां कोई नहीं है, मुझे लगता है कि यह मामला है।
स्रोत
2009-07-13 19:53:26
मैंने अभी ओपनसीवी वेबसाइट देखी है। ऐसा लगता है कि सभी कार्यों को "सीवी" के साथ उपसर्ग किया गया है। जबकि नामस्थान एक बेहतर समाधान हैं, मुझे आश्चर्य है, क्या आपके पास वास्तविक प्रतीक टकराव हैं? –
मेरे पास वास्तविक टकराव नहीं हैं, यह केवल चीजों को व्यवस्थित रखने के लिए है क्योंकि मैं कुछ ओपनसीवी डेटा संरचनाओं के रैपर कर रहा हूं और उन्हें उसी नामस्थान में रखना चाहता हूं। –