タグ付けされた質問 「name-mangling」


11
.soファイルにシンボルをリストする方法
.soファイルからエクスポートされるシンボルを一覧表示するにはどうすればよいですか?可能であれば、それらのソースも知りたいです(たとえば、静的ライブラリから取得した場合)。 違いがある場合は、gcc 4.0.2を使用しています。
486 c++  c  gcc  symbols  name-mangling 


9
C関数を名前変換できないのはなぜですか?
私は最近インタビューを受けました、そして尋ねられた一つの質問はextern "C"C ++コードで何が使用されているかということでした。Cは名前のマングリングを使用しないので、C ++コードでC関数を使用することだと答えました。Cが名前のマングリングを使用しない理由を尋ねられましたが、正直に答えることができませんでした。 C ++コンパイラーが関数をコンパイルすると、主にコンパイル時に解決する必要があるC ++で同じ名前のオーバーロードされた関数を使用できるため、関数に特別な名前が付けられることを理解しています。Cでは、関数の名前は同じままか、おそらくその前に_が付いています。 私のクエリは:C ++コンパイラがC関数を壊すことを許可することの何が問題になっていますか?コンパイラがそれらに付ける名前は問題ではないと私は思いました。CおよびC ++でも同じように関数を呼び出します。
136 c++  c  name-mangling  extern-c 

13
std :: type_info :: nameの結果の展開
私は現在、とりわけ、呼び出し元の関数に関する情報を出力することになっているいくつかのロギングコードに取り組んでいます。これは比較的簡単なはずtype_infoです。標準のC ++にはクラスがあります。これには、typeidされたクラス/関数/などの名前が含まれます。しかし、それは壊れています。あまり役に立ちません。すなわちtypeid(std::vector<int>).name()戻りますSt6vectorIiSaIiEE。 これから何か有用なものを生み出す方法はありますか?同様にstd::vector<int>、上記の例のために。テンプレート以外のクラスでのみ機能する場合も問題ありません。 ソリューションはgccで機能するはずですが、移植できればより良いでしょう。これはロギング用であるため、オフにできないことはそれほど重要ではありませんが、デバッグには役立ちます。
93 c++  gcc  name-mangling 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.