我有c++filt
命令來去掉符號,什麼是做相反的工具和破壞符號名稱?什麼是Linux實用程序來修改C++符號名稱?
如果我想要調用dlsym()
上一個錯位的C++函數名稱,這將會很有用。我寧願不要在代碼中硬編碼名稱,因爲隨着時間的推移,由於新的編譯器版本或新的編譯器品牌被使用,或者由於編譯多個平臺,目前它可能會改變。
是否有一種編程方式來獲取代表C++函數在運行時的字符串,以便代碼獨立於編譯器?一種可能的方法是在編譯時調用一個實用程序,爲正在使用的編譯器執行名稱修改,並將適當的錯位C++符號名稱插入到要使用的dlsym()
的字符串中。
Here is the closest to a solution I've found on this site這是通過使用一個固定的C樣式名稱間接到你想dlsym()
庫中定義的C++符號來完成,但如果你沒有過什麼庫提供的控制,這是不是一種選擇。
每個人都使用C++編譯器來壓縮名稱。 –
呃,編譯器呢? –
-1,編譯器是你需要的唯一東西......這是相當明顯的答案。 – Griwes