我有一個鏈接某些靜態庫的二進制文件列表。已經發現一堆這些庫是循環依賴的。我們從來沒有遇到過麻煩,因爲我們在-Wl, - start-group和-Wl之間包含了這些靜態庫, - end-group通過腳本識別靜態庫之間的循環依賴關係
在瞭解到這是一個不好的做法之後,我試圖清理系統。
,我想出了一個Perl腳本,告訴我這些庫是如何彼此依賴,就像這樣:
libchld.a取決於libprnt.a,libgprnt.a
libprnt.a取決於libncle.a,libgprnt.a
並且走一個。
現在,我應該將這些拓撲結構與每個節點分別向上或向下排序。 然後,如果我在拓撲排序的同時找到一組循環依賴庫,那麼我將不得不通過清理將中的那些包含在--start-group和--end-group中(而不是封裝整個庫)系統。
是否有一些perl模塊可以完成這種排序?
排序::拓撲 圖::導演
是那些我試圖檢查。但是,如果圖形是循環的,他們似乎不處理。
您需要依賴關係圖的[強連通組件](http://search.cpan.org/perldoc/Graph#strongly_connected_components)。 – 2013-03-21 17:12:42