Jakie narzędzia wiersza poleceń służą do rekurencyjnego znajdowania wszystkich zależności DLL? Próbowałem dumpbin i Dependency Walker (alias Depends.exe), które pochodzą z Visual Studio, ale dumpbin znajduje tylko pierwszy poziom zależności, a wyjście Dependency Walker nie jest naprawdę przyjazne dla komputera.Narzędzie wiersza poleceń do znajdowania zależności Dll
Odpowiedz
Wypróbuj opcję /oc:FILENAME
, zależnie od tego, czy chcesz zapisać plik z wartościami rozdzielonymi przecinkami. Wygląda na to, że łatwiej jest parsować przez komputer niż plik tekstowy "swobodnej formy" generowany przez opcję/ot: FILENAME /.
Dependency Walker ma many options włącznie z opcjami wyjścia do pliku. Jednym z nich jest /oc:<path>
, który zapisuje dane wyjściowe do pliku CSV file, który jest łatwo przetwarzany przez inne narzędzia lub nawet po prostu zaimportowany do aplikacji arkusza kalkulacyjnego.
W zależności od potrzeb, zależności mogą być również dostępne w różnych platformach - na przykład CMake fixup-bundle, dzięki czemu można skopiować wszystkie wykryte niesystemowe zależności do lokalizacji obiektu docelowego (biblioteki wykonywalnej lub udostępnionej) , nawet w systemie Windows. Dokumentacja nie wyjaśnia tego jasno, ale od pewnego czasu używam go do tego celu w projekcie międzyplatformowym.
"Zależy", o którym mowa w pytaniu, to nazwa exe Dependency Walker. – unwind
zależy i Dependency Walker i to samo. Wiem, że można go uruchomić w wierszu poleceń, ale powiedziałem, że wyjście nie jest przyjazne dla komputera. – Jazz
Tak, tęskniłem za tym - moje złe, ponieważ zbyt szybko przeczytałem pytanie. Ale zamierzałem uzyskać odpowiedź Unwinda powyżej - wersja csv jest łatwiejsza do przeanalizowania. –
Opcja Dependency Walker przy użyciu opcji umożliwia łatwe przetwarzanie. Jeśli chcesz również ścieżek do bibliotek, musisz także użyć opcji -f 1
. Możesz to zrobić, jeśli chcesz skopiować biblioteki (np. Aby utworzyć możliwą do rozpowszechnienia wersję pliku wykonywalnego).
Niestety w wynikach z pliku depends.exe ścieżki do bibliotek są konwertowane na małe litery, a nazwa DLL jest konwertowana na wielkie litery. Na przykład,
c: \ qtsdk \ Pulpit \ qt \ 4.7.4 \ MinGW \ bin \ QTCORE4.DLL
gdy biblioteka jest rzeczywiście znajduje się pod adresem:
C : \ QtSDK \ Pulpit \ Qt \ 4.7.4 \ MinGW \ bin \ QtCore4.dll
nie wydaje się być sposobem na uzyskanie Depends.exe zgłosić ścieżki poprawnie który jest wstyd.
W grze Power Shell wszystko set: depends.exe /oc:tmp.txt plik.dll; Import-Csv tmp.txt | Format-Table -AutoSize daje ładny, filtrujący tabelę. – jhclark