libで始まらない so のリンク
実は C/C++ カテでも質問したのですが、linuxカテの方が適切と思われるので
ここであらためて質問します。Linuxは Cent OS 6.4(32bit)です。
もともとプラグイン用の so で dlopen で利用されていた so (仮に foo.so とします)
が有ります。プラグインのファイル名は命名規約によって決まっており、lib~.soにはできません。
#意図的にそうしたらしいです。
この中で使われている C++ のクラスを使って(継承して)、新しいプラグインを作ることになり
ld -shared -o bar.so -L ../foo -lfoo ・・・・・・
でリンクしようとすると cannot find -lfoo
となってしまいます。もちろん foo.so の名称を
libfoo,so に直せば問題なくリンクできるのですが、プラグインの命名規則のため
できません。
ld -shared -o bar.so ../foo/foo.so ・・・・・・
とすると、リンクは可能ですが、bar.so に foo.so が[../foo/foo.so]という名称で
登録されてしまうため、実行ファイルと foo.so との位置関係が制約されてしまいます。
また、
ld -shared -o bar.so -L../foo -l:foo.so ・・・・・・
とすると、やはり、bar.so に foo.so が[../foo/foo.so]という名称で
登録されてしまうのです。
linfoo.so を -lfoo で登録すると [libfoo.so]という名称で登録され、LD_LIBRARY_PATH等に
きちんと従わせることができます。これと同様に foo.so をリンクする方法を探しています。
ひょっとするとこうしたことは Linux では非常識なのでしょうか?
ご存知の方がおられましたら、よろしくお願いいたします。
補足
すみません、遅くなりました。(ぎっくり腰で) 説明不足でスミマセン、直接バーナ、もしくはリンクを貼りたいのですが。