リンカーの –z guidance オプションの使用をお勧めします。ガイダンスメッセージは、リンカーオプションに関して、また作成されたオブジェクトを改善できるほかの操作に関して提案します。
–z lazyload オプションを使用して、動的実行可能プログラムの依存関係の遅延読み込みを指定します。動的依存関係の遅延読み込みを参照してください。
不要な依存関係を回避します。不要な依存性を検出および排除するには、–u オプションとともに ldd を使用します。共有オブジェクトの処理を参照。または、–z discard-unused=dependencies オプションを使用して、参照されるオブジェクトに対する依存関係だけを記録するようにリンカーに指示します。
動的実行可能ファイルの依存関係がデフォルトの検索位置にない場合は、–R オプションを使用して出力ファイルにパス名を記録します。実行時リンカーが検索するディレクトリを参照してください。
–B direct を使用して直接結合情報を確立します。Chapter 6, 直接結合を参照してください。
次の例は、上記のポイントを組み合わせたものです。
$ cc -o prog -R /home/lib -z discard-unused=dependencies -z lazyload -B direct -L. \ -lfoo file1.o file2.o file3.o ....