これを行います (もちろん、適切な -L を使用して)
gcc -shared -o megalib.so foo.o bar.o -la_static_lib -lb_static_lib
しませんか?
スタティック ライブラリ内のオブジェクトが -fPIC などなしでコンパイルされた場合、これを行うことはできません。
g++ -shared -o megalib.so foo.o bar.o -Wl,--whole-archive -la_static_lib -lb_static_lib -Wl,--no-whole-archive -lc_static_lib -lother_shared_object
gcc についてはよくわかりませんが、g++ の場合は、スタティック ライブラリのオブジェクトを共有オブジェクトに含めるために --whole-archive リンカー オプションを追加する必要がありました。 libc_static_lib.a および libother_shared_object.so にリンクしますが、megalib.so に全体としては含めません。