0

リンカーの「-wrap」フラグは、未定義のシンボルに対してのみ機能することを読みました。これにより、同じファイル内の関数呼び出しに対して正しく機能しません。

「-wrap」を既知のシンボルで機能させる方法はありますか? または、コンパイラに特定の/すべてのシンボルを未定義としてマークさせます(それらは同じファイルにありますが)?

コメントにより編集:

例えば:

代わりに、関数 foo() へのすべての呼び出しが __wrap_foo に移動するようにします。したがって、フラグ -Wl,-wrap,foo をリンカーに追加しました。foo が定義されているファイルとは異なるファイルから呼び出された場合、問題なく動作します。ただし、同じファイル内から呼び出された場合、ラッパーは呼び出されません

4

0 に答える 0