Was ist das Linux-Dienstprogramm zum Verwerfen eines C ++ - Symbolnamens?

ich habec++filt Befehl, ein Symbol zu entwirren, was ist das Werkzeug, um das Gegenteil zu tun und einen Symbolnamen zu entstellen?

Dies wäre nützlich, wenn ich anrufen möchtedlsym() auf einem verstümmelten C ++ - Funktionsnamen. Ich würde es vorziehen, den Namen nicht hart im Code zu kodieren, da er sich im Laufe der Zeit aufgrund neuer kompatibler Versionen oder neuer Compilermarken ändern könnte oder derzeit aufgrund des Kompilierens für mehrere Plattformen.

Gibt es eine programmatische Möglichkeit, die Zeichenfolge abzurufen, die zur Laufzeit eine C ++ - Funktion darstellt, sodass der Code vom Compiler unabhängig ist? Eine Möglichkeit, dies zu tun, besteht möglicherweise darin, zur Kompilierungszeit ein Dienstprogramm aufzurufen, das die Namensverknüpfung für den verwendeten Compiler ausführt und den entsprechenden Namen des verstümmelten C ++ - Symbols in eine Zeichenfolge für einfügtdlsym() benutzen.

Dies ist die Lösung, die ich auf dieser Website am nächsten gefunden habe Dies wird erreicht, indem ein fester C-Stilname verwendet wird, um direkt auf C ++ - Symbole zuzugreifen, die in der gewünschten Bibliothek definiert sinddlsym()Wenn Sie jedoch keine Kontrolle darüber haben, was diese Bibliothek bereitstellt, ist dies keine Option.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage