12

過去には、生成されたすべてのシンボルにプレフィックスを追加するオプションがあったことを知っていますが-fprefix-function-name、それはもはやgccの一部ではないようです。これを行う他の方法はありますか?

4

2 に答える 2

16

この答えがあなたに解決策を与えると信じています。

objcopyつまり、次のように使用して、既存のライブラリでシンボルを「プレフィックス」できます。

objcopy --prefix-symbols=foo_foo.o

于 2012-04-14T22:40:14.183 に答える
3

*編集:ジョージ・スコプツォフの解決策は私の解決策よりも優れています:)nmただし、このトリックは役立つかもしれません。


これはまさにあなたが探しているものではありませんが、過去に似たようなことをしなければなりませんでした (ライブラリによってエクスポートされたシンボルの名前を変更する)

再定義したいシンボルの名前がわかっている場合は、 を使用してみてくださいobjcopy --redefine-syms old=new。入力の詳細については、objcopy のマニュアル ページを参照してください (objcopy はファイルを上書きする可能性があるため、注意してください)。

シンボルの名前がわからない場合は、シンボルnmのリストを取得するために使用できます。繰り返しますが、あなたが探しているシンボルの種類がよくわからないので、man ページがおそらく最善の策です。

于 2012-04-14T22:46:04.937 に答える