Existuje způsob, jak analyzovat strom závislostí z výstupu build skriptu?

hlasů
0

Mám zdědil projekt, který používá build skript (ne dělat) na vybudování a propojení projektu s různými knihovnami.

Když se provádí sestavení bych chtěl analyzovat sestavení výstup zjistit, co a kde jsou skutečné statické knihovny jsou spojeny do výsledného spustitelného jsou a kde jsou pochází.

Skript je kompilace a propojení s GNU nástroji.

Položena 06/09/2008 v 20:57
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Můžete zkusit pomocí nmnástroje. Vzhledem k tomu, správné volby, bude to vypadat na binární (archivu nebo propojený obrázek) a řeknu vám, jaké objekty byly spojeny do něj.

Vlastně tady je jednořádkový používám v práci:

#!/bin/sh

nm -Ag $* | sed 's/^.*\/\(.*\.a\):/\1/' | sort -k 3 | grep -v ' U '

najít viníky pro nedefinované symboly. Jen utnout poslední grep výraz a měl by do značné míry dát to, co chcete.

Odpovězeno 06/09/2008 v 21:25
zdroj uživatelem

hlasů
0

To je pravděpodobně možné dělat něco užitečného pomocí např Perl, ale budete muset poskytnout další podrobnosti. Na druhou stranu, mohlo by to být jednodušší jednoduše analyzovat skript ...

Odpovězeno 06/09/2008 v 21:22
zdroj uživatelem

hlasů
0

Statické knihovny, která dělá život složitější v tomto ohledu. V případě dynamických knihoven, které by mohly právě použili ldd na výsledný spustitelný a hotovo. Nejlepším řešením by byla nějaká konfiguračního souboru. Případně můžete zkusit hledat -l argumenty gcc / LD. Ty se používají k určení knihovny. Dalo by se napsat scénář k jeho extrakci z výstupu, i když mám podezření, že budete muset udělat ručně, protože v době, kdy víte, co skript by měl vypadat pro vás pravděpodobně již znát odpověď.

Odpovězeno 06/09/2008 v 21:20
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more