linuxでの共有ライブラリのリンクについて


linuxでmakefileを書く際に、以下のような共有ライブラリのリンクの仕方が分からず、困っています。

【やりたいこと】  
[実行ファイル]-->[libA.so]-->[libB.so] という依存関係  
libA.soを作るためのMakefileに-lBと記述し、実行ファイル側を作るためのMakefileには-lA とだけ記述したい。

【現状】  
私が書いているMakefileだと、実行ファイルを作るためのMakefileに -lA -lBと記述しないとリンクエラーになってしまいます。

シンプルなMakefileのサンプルなどあれば教えていただけないでしょうか。  
よろしくお願いします。




ld のエラーメッセージに促されるまま -rpath を付けたら通りました。  
こんな感じで。

[code]

    all: exe
    
    exe: main.c liba.so
        gcc -o exe main.c -L. -la
    
    liba.so: a.c libb.so
        gcc -c -fPIC a.c
        gcc a.o -shared -o liba.so -L. -Wl,-rpath,. -lb
    
    libb.so: b.c
        gcc -c -fPIC b.c
        gcc b.o -shared -o libb.so
    
    clean:
        -rm -f exe liba.so libb.so
    
[/code]

gcc 5.2.0, ld 2.25.1 です。




ld のエラーメッセージに促されるまま -rpath を付けたら通りました。  
こんな感じで。

[code]

    all: exe
    
    exe: main.c liba.so
        gcc -o exe main.c -L. -la
    
    liba.so: a.c libb.so
        gcc -c -fPIC a.c
        gcc a.o -shared -o liba.so -L. -Wl,-rpath,. -lb
    
    libb.so: b.c
        gcc -c -fPIC b.c
        gcc b.o -shared -o libb.so
    
    clean:
        -rm -f exe liba.so libb.so
    
[/code]

gcc 5.2.0, ld 2.25.1 です。

