Welche Zeilen-Tools rekursiv existieren Befehl an alle DLL-Abhängigkeiten zu finden? Ich versuchte dumpbin und Dependency Walker (aka Depends.exe), die mit Visual Studio kommen, aber dumpbin finde nur die erste Stufe von Abhängigkeiten und die Ausgabe von Dependency Walker ist nicht wirklich Computer freundlich.Kommandozeilen-Tool DLL finden Abhängigkeiten
Antwort
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.
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.
Die „hängt“ in der Frage erwähnt ist die exe Namen Dependency Walker. – unwind
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
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. –
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.
- 1. Zusätzliche Abhängigkeiten/DLL/Library
- 2. PHP-Abhängigkeiten finden
- 3. Dll-Funktionsparameter finden
- 4. Verwalten von DLL-Abhängigkeiten mit Maven
- 5. dll fehlt Abhängigkeiten auf Windows 7-Dateien
- 6. Warnung: Kann DLL nicht finden
- 7. zu finden, warum eine DLL
- 8. Kann System.Net.Http.Formatting DLL nicht finden
- 9. Hinzufügen von .net DLL-Abhängigkeiten zu einem Projekt
- 10. Maven webstart plugin keine Abhängigkeiten zu finden
- 11. Standardmäßiges intelligentes Geräteprojekt kann keine Abhängigkeiten finden
- 12. py2exe kann msvcp90.dll nicht finden
- 13. Haskell SDL: Kann mingw32.dll nicht finden
- 14. Eine DLL finden, deren CLSID bekannt ist
- 15. wie Namespace von DLL zur Laufzeit finden
- 16. Kann nicht Msvcp80.dll (nebeneinander Problem?) Finden
- 17. Ressource in DLL statt Hauptanwendung finden
- 18. VC++: KB971090 und Auswählen von Visual C-Laufzeit-DLL-Abhängigkeiten
- 19. Umgang mit Abhängigkeiten zu einer häufig ändernden DLL
- 20. Wie programmiere ich Windows-Programme DLL-Abhängigkeiten programmatisch?
- 21. Wie man eine WiX benutzerdefinierte Aktion DLL-Datei mit Abhängigkeiten
- 22. Ausführen von Python-Demoskript mit dll/pyd-Abhängigkeiten
- 23. Abhängigkeiten aller DLLs herausfinden?
- 24. Wie Abhängigkeiten Abhängigkeiten erhalten?
- 25. nuget Abhängigkeiten von Abhängigkeiten
- 26. Visual Studio kann PBD-Datei für ig7icd64.dll und igdusc64.dll nicht finden oder öffnen.
- 27. DllImport kann DLL nicht finden, obwohl dll im selben Ordner wie ausführbare Datei ist
- 28. kann nicht einen Einstiegspunkt genannt finden ‚GetProcessID‘ in DLL ‚kernel32.dll‘
- 29. referenzierte DLL in Visual Studio kann nicht seine eigene DLL C# finden
- 30. Wie man richtig auflöst Kann PInvoke DLL 'sqlceme35.dll' nicht finden
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