ライブラリ MyLib と実行可能 MyExe を含むパッケージ MyPak を作成しています。どちらもサードパーティのライブラリ Foobar に依存しています。システムに応じて、Foobar は共有ライブラリまたは静的ライブラリとして利用できます。また、MyLib を共有するか静的にするかを自由に選択できます。
MyLib を共有ライブラリとしてコンパイルすることを選択した場合、Foobar も共有ライブラリとして利用可能であれば意味があります。MyExe のリンク行は、次の行に沿ったものになります。
gcc -g myexe.c /path/to/mylib.so /path/to/foobar.so
ここで静的 foobar をリンクすることの意味は何ですか、つまり、
gcc -g myexe.c /path/to/mylib.so /path/to/foobar.a
? これは悪い習慣と見なされますか? パフォーマンスに悪影響を及ぼしますか?
同様に、MyLib が静的である場合、それを行うのは問題がありますか?
gcc -g myexe.c /path/to/mylib.a /path/to/foobar.so
? 結果はシステムに依存しますか?