Linuxの共有ライブラリをいじっていて、奇妙な問題が発生しました。共有ライブラリを正常に作成してlibrbmp.so.0
ファイルを取得し、それをシンボリックリンクしてさらに2つのファイルを取得します:librbmp.so
とlibrbmp.so.0.0.1
。次に、それらをコピーし/usr/local/lib
て実行するldconfig
と、ここで奇妙な動作が発生します。もう1つのファイルがに表示され/usr/local/lib
ます。それはと呼ばれ--library=ibrbmp.so.0.0.1
ます。奇妙なことに、私のアプリケーションは実行時にそれにリンクします。
何が起こっているのか、そして私のアプリを強制的にリンクさせる方法を知っている人はいlibrbmp.so
ますか?
コードは次のとおりです。
//creating shared library
$(CC) -shared -Wl,-soname,-librbmp.so.0.0.1 $(OBJECTS) -o librbmp.so.0 -lc
//symlinking
ln -sf librbmp.so.0.0.1 librbmp.so.0
ln -sf librbmp.so.0.0.1 librbmp.so