1

LD_PRELOADファイルがあります。ほとんどのシステム(Unix / Linux)で動作するように、このプリロードをコンパイルする必要があるOSと条件を確認してください。最も求められているのは、FreeBSD、Ubuntu、CenstOS、Solarisです。

ありがとう!

4

1 に答える 1

2

共有ライブラリにコンパイルする必要があります。これが私が通常私のものをコンパイルする方法です:

libt.so: t.lo
        g++ -fPIC -O3 -W -Wall -shared -Wl,-export-dynamic -o $@ $^ -lc

t.lo: t.cc
        g++ -c -fPIC -O3 -W -Wall $^ -o $@

次に、それを使用するには、そのファイルを起動する前に、ライブラリをLD_PRELOAD環境変数に追加します。bashコマンドラインからこのように行う場合:

LD_PRELOAD=libt.so executable_name -and args

その後、そのコマンドライン実行に対してのみ設定され、後で起動する他のプログラムには影響しません。

于 2012-06-12T11:29:49.367 に答える