2008-12-09 12 views

Antwort

14

Versuchen Sie, die /oc:FILENAME Option abhängig ist, eine durch Kommata getrennte Werte-Datei zu schreiben. Das sieht so aus, als wäre es einfacher, maschinell zu parsen als die "free-form" Textdatei, die mit der Option/ot: FILENAME/erzeugt wurde.

+1

In Powershell, du bist alles eingestellt: depends.exe /oc:tmp.txt file.dll; Import-Csv tmp.txt | Format-Tabelle -AutoSize gibt Ihnen einen schönen, filterbaren Tisch. – jhclark

8

Dependency Walker hat many options einschließlich Ausgang-zu-Datei-Optionen. Eine davon ist /oc:<path>, die die Ausgabe in eine CSV file schreibt, die leicht von anderen Tools analysiert oder sogar nur in eine Tabellenkalkulationsanwendung importiert werden kann.

Je nachdem, was Sie benötigen, können die Abhängigkeiten für Sie auch über plattformübergreifende Tools verfügen, z. B. CMake fixup-bundle, die alle erkannten Nicht-Systemabhängigkeiten an den Speicherort Ihres Ziels (ausführbare oder gemeinsam genutzte Bibliothek) kopieren können. , sogar unter Windows. Die Dokumentation erklärt es nicht klar, aber ich verwende es schon seit einiger Zeit in einem plattformübergreifenden Projekt.

+0

Die „hängt“ in der Frage erwähnt ist die exe Namen Dependency Walker. – unwind

+0

hängt davon ab und Dependency Walker und die gleiche Sache. Ich weiß, dass es in der Befehlszeile ausgeführt werden kann, aber ich sagte, die Ausgabe ist nicht computerfreundlich. – Jazz

+0

Ja, das habe ich verpasst - mein Fehler, dass ich die Frage zu schnell gelesen habe. Aber ich habe die Antwort von Unwind oben gesagt - die CSV-Version ist leichter zu analysieren. –

2

Mit der /oc:<path> Option, Dependency Walker gibt Ihnen eine CSV file die leicht analysiert wird. Wenn Sie auch die Pfade zu den Bibliotheken benötigen, müssen Sie auch die Option -f 1 verwenden. Sie können dies tun, wenn Sie die Bibliotheken kopieren müssen (z. B. um eine verteilbare Version einer ausführbaren Datei zu erstellen).

Leider gibt es in der Ausgabe von depends.exe die Pfade zu den Bibliotheken werden in Kleinbuchstaben umgewandelt und die DLL-Name wird in Großbuchstaben umgewandelt. Zum Beispiel

c: \ qtsdk \ Desktop \ qt \ 4.7.4 \ mingw \ bin \ QTCORE4.DLL

Wenn die Bibliothek an tatsächlich befindet:

C : \ QtSDK \ Desktop \ Qt \ 4.7.4 \ mingw \ bin \ QtCore4.dll

Es scheint nicht ein Weg, um depends.exe zu bekommen die Pfade korrekt zu berichten, was schade ist.

+2

+1 für das Wort "Schande" – ceztko

+3

oberen, unteren .... ohne Konfiguration, Windows ist überhaupt egal! – relascope

Verwandte Themen