Kommandozeilen-Tool DLL-Abhängigkeiten zu finden

stimmen
17

Welche Kommandozeilen - Tools existieren alle DLL - Abhängigkeiten rekursiv zu finden? Ich habe versucht , dumpbin und Dependency Walker (aka Depends.exe) , die mit Visual Studio kommen, aber dumpbin nur findet die erste Stufe von Abhängigkeiten und die Ausgabe von Dependency Walker ist nicht wirklich Computer freundlich.

Veröffentlicht am 09/12/2008 um 15:43
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
14

Versuchen Sie, die /oc:FILENAMEOption hängt, eine durch Kommata getrennte Werte - Datei zu schreiben. Das sieht aus wie es einfacher ist , mit der Maschine als die „Freiform“ Textdatei von der / ot erzeugt zu analysieren: filename / Option.

Beantwortet am 09/12/2008 um 15:51
quelle vom benutzer

stimmen
8

Dependency Walker hat viele Optionen , einschließlich Ausgang-zu-Datei - Optionen. Eines davon ist , /oc:<path>welche die Ausgabe in eine schreibt CSV - Datei , die sich leicht durch andere Werkzeuge analysiert wird oder auch nur in einem Tabellenkalkulationsprogramm importiert.

Je nachdem , was Sie brauchen , um die Abhängigkeiten für Sie wirklich Cross-Plattform - Tools können dies auch tun - zum Beispiel CMake Fixup-Bündel , das alle erkannte Nicht-Systemabhängigkeiten an den Ort Ihres Ziels (ausführbaren Datei oder gemeinsam genutzte Bibliothek) kopieren, auch unter Windows. Die Dokumentation nicht eindeutig erklären , aber ich habe es mit zu diesem Zweck auf einem plattformübergreifende Projekt für eine Weile jetzt.

Beantwortet am 09/12/2008 um 15:45
quelle vom benutzer

stimmen
2

Mit Hilfe der /oc:<path>Option, Dependency Walker gibt Ihnen eine CSV - Datei , die leicht analysiert wird. Wenn Sie auch die Pfade zu den Bibliotheken wollen , müssen Sie auch die verwenden -f 1Option. Vielleicht möchten Sie dies tun , wenn Sie die Bibliotheken kopieren müssen (zB eine verteilbar Version eines ausführbaren zu machen).

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. Beispielsweise,

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

Wenn die Bibliothek tatsächlich befindet sich unter:

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

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

Beantwortet am 06/06/2013 um 04:33
quelle vom benutzer

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