Was entspricht der Linux-Festplatte unter Windows?


Antworten:


53

Hier ist Dependency Walker.

http://dependencywalker.com/


4
Gibt es so etwas wie ldd nur für die Kommandozeile? Suchen Sie nach etwas, das ich über eine Eingabeaufforderung verwenden kann. Bevorzugen Sie einen kleinen Lichtbefehl, vorzugsweise ohne zusätzliche DLLs.
JM Becker

2
Es scheint, dass das eine Befehlszeilenschnittstelle hat: dependencywalker.com/help/html/hidr_command_line_help.htm
Daniel A. White

3
Die Syntax sieht ungefähr so ​​aus: abhängige.exe / c /oc:dependencies.csv /ot:dependencies.txt mydll.dll
Boinst

3
Dependency Walker funktioniert gut, ist jedoch eine erstaunliche Änderung gegenüber der Einfachheit von ldd (insbesondere, wenn Sie es gewohnt sind, Skripte für ein Tool zu erstellen, dessen Ausgabe verbrauchen und beispielsweise Aufgaben automatisch damit verpacken).
zxq9

2
Abstürze unter Windows 10.
Mikemaccana

41

Der dumpbinBefehl kann für viele Dinge nützlich sein, obwohl der Abhängigkeits-Walker in diesem Fall wahrscheinlich etwas ausführlicher ist.

dumpbin /dependents some.dll

Beispielausgabe:

C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Statische Analysetools> dumpbin / abhängige StanPolicy.dll

Speicherauszug der Datei StanPolicy.dll

Dateityp: DLL

Das Bild hat die folgenden Abhängigkeiten:

mscoree.dll

Zusammenfassung

    2000 .reloc
    2000 .rsrc
   1E000 .text

5
Dies ist die beste Option, wenn Sie Visual Studio installiert haben.
Sakra

34

oder das GNU-Tool:

i586-mingw32msvc-objdump -p  *.exe    | grep 'DLL Name:'

1
Kann objdump verwendet werden, um den vollständigen Pfad anzuzeigen? Ich brauche etwas rekursiv und dies erfordert einen vollständigen Pfad für jede abhängige DLL
INS

3
objdump zeigt Ihnen nur, was die Datei enthält. Es wird nicht versucht, eine Pfadsuche durchzuführen, wie dies der lddFall ist.
Jørgensen

26

PowerShell kann dies tun

PS> Start-Prozess -PassThru calc.exe | Get-Process-Modul

   Größe (K) Modulname
   ------- ----------
       908 calc.exe
      1700 ntdll.dll
      1148 kernel32.dll
       432 KERNELBASE.dll
     13856 SHELL32.dll
           ...

6
Dies scheint nur insoweit zu funktionieren, als das Programm tatsächlich DLLs findet - im Fehlerfall ist die Liste unvollständig.
01d55

12

Wenn Sie winekein echtes Windows verwenden, können Sie es verwenden WINEDEBUG=+loaddll wine <program>.


7
Die Entwicklung gegen Wine als Ziel für Windows kam mir so seltsam vor, dass ich es ausprobieren musste (ich ziele hauptsächlich auf Linux ab) ... und tatsächlich funktioniert es weitaus reibungsloser, als ich es für das Prototyping erwartet hatte. Sehr sehr cool.
zxq9

Betreff: Entwicklung mit Wine anstelle von Windows: Beachten Sie, dass das, was in Wine funktioniert, unter echten Windows nicht unbedingt funktioniert. Ich habe dies gelernt, als ich vergessen habe anzurufen GdiplusStartup, und GDI + hat in Wine problemlos funktioniert, unter Windows jedoch nicht. Ich habe diesen Fehler erst bemerkt, nachdem ich das Programm in Wine getestet und versucht hatte, es unter Windows auszuführen.
Ruslan

8

Es gibt jetzt eine lddin Cygwin. Wenn Sie eine sehr alte Cygwin-Version haben, müssen Sie diese verwenden cygcheck.


Ja, aber es ist nicht sehr genau
Stef

8

Ich denke, der Windows Developer-Weg, dies zu tun, ist die Verwendung dumpbin /dependents source.exe. Wenn Sie Visual Studio installiert haben, finden Sie es hier : C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe.


3
Schade, dass dies nicht
anzeigt

@rubenvb Process Explorer von SysInternals MS Suite bietet im unteren Bereich eine Ansicht aller DLLs, die von einer Binärdatei geladen werden, einschließlich ihrer Pfade und der Symbol- / DLL-Suche.
Kevinf

7

Neuere Versionen von Git unter Windows werden mit Git BASH geliefert , das viele nützliche Unix-Befehle einschließlich ldd emuliert.

Es scheint, dass nur Bibliotheken gemeldet werden, die gefunden werden können. Auf diese Weise erhalten Sie einen Überblick darüber, wo sich die verwendeten Bibliotheken befinden, aber nicht welche fehlen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.