मेरे पास c++filt
कमांड को डिमंगल करने के लिए कमांड है, विपरीत करने के लिए टूल क्या है और प्रतीक नाम को उलझाना है?सी ++ प्रतीक नाम को उलझाने के लिए लिनक्स उपयोगिता क्या है?
यह उपयोगी होगा अगर मैं dlsym()
को एक उलझन में सी ++ फ़ंक्शन नाम पर कॉल करना चाहता हूं। मैं कोड में उलझने वाले नाम को कड़ी मेहनत नहीं करूँगा क्योंकि यह नए अनुपालन संस्करणों या नए प्लेटफार्म ब्रांडों के इस्तेमाल के कारण समय के साथ बदल सकता है या वर्तमान में कई प्लेटफार्मों के लिए संकलन के कारण।
क्या स्ट्रिंग प्राप्त करने के लिए एक प्रोग्रामेटिक तरीका है जो रनटाइम पर C++ फ़ंक्शन का प्रतिनिधित्व करता है ताकि कोड संकलक स्वतंत्र हो? संभवतः ऐसा करने का एक तरीका संकलन समय पर एक उपयोगिता को कॉल करना होगा जो कि कंपाइलर का उपयोग करने के लिए नाम बदलता है और उपयोग करने के लिए dlsym()
के लिए उपयुक्त मैंगल्ड सी ++ प्रतीक नाम को स्ट्रिंग में डालता है।
Here is the closest to a solution I've found on this site जो सी ++ प्रतीकों कि पुस्तकालय आप dlsym()
करना चाहते हैं में परिभाषित कर रहे हैं करने के लिए अप्रत्यक्ष के लिए एक निश्चित सी शैली नाम का उपयोग करके पूरा किया है, लेकिन आप क्या कि पुस्तकालय प्रदान करता है पर नियंत्रण नहीं है, तो, यह एक विकल्प नहीं है।
हर कोई नाम बदलने के लिए एक सी ++ कंपाइलर का उपयोग करता है। –
कैसे, कं, संकलक के बारे में? –
-1, कंपाइलर केवल एक चीज है जो आपको चाहिए ... और यह काफी स्पष्ट उत्तर है। – Griwes