いくつかの静的ライブラリをリンクするバイナリのリストがあります。これらのライブラリの束が循環依存であることが確認されました。これらのスタティック ライブラリを -Wl,--start-group と -Wl,--end-group で囲んだため、問題が発生することはありませんでした。
これが悪い習慣であることを理解したので、システムをきれいにしようとしています。
次のように、これらのライブラリが互いにどのように依存しているかを示す perl スクリプトを思いつきました。
libchld.a は libprnt.a、libgprnt.a に依存します
libprnt.a は libncle.a、libgprnt.a に依存します
そして1つになります。
ここで、各ノードが上向きまたは下向きになるようにトポロジー的に並べ替える必要があります。そして、トポロジー的にソートしているときに循環依存ライブラリのセットを見つけた場合 、システムをクリーンアップして、(ライブラリの束全体を囲むのではなく) --start-group および --end-group 内のもののみを囲む必要があります。 .
このタイプのソートを既に行う perl モジュールはありますか?
並べ替え::トポロジカル グラフ::有向グラフ
私がチェックしようとしているものです。ただし、グラフが円形の場合は処理されないようです。