У меня есть список двоичных файлов, которые связывают некоторые статические библиотеки. Было установлено, что множество этих библиотек циклически зависимы. Мы никогда не сталкивались с проблемами, потому что мы заключили эти статические библиотеки между -Wl,--start-group и -Wl,--end-group.
Поняв, что это плохая практика, пытаюсь почистить систему.
Я придумал perl-скрипт, который говорит мне, как эти библиотеки зависят друг от друга, например:
libchld.a зависит от libprnt.a, libgprnt.a
libprnt.a зависит от libncle.a, libgprnt.a
и идет один.
Теперь я должен отсортировать их топологически, чтобы каждый узел указывал либо вверх, либо вниз. И затем, если я найду набор циклически зависимых библиотек при топологической сортировке, мне придется заключить только те внутри --start-group и --end-group (чем заключить всю кучу библиотек ) там путем очистки системы.
Существуют ли некоторые модули Perl, которые уже выполняют этот тип сортировки?
Сортировка::Топологический граф::Направленный
те, которые я пытаюсь проверить. Но они, кажется, не справляются, если график круговой.