Windows上のLinuxのlddに相当するものは何ですか?


回答:


53

これがDependencyWalkerです。

http://dependencywalker.com/


5
コマンドライン専用のlddのようなものはありますか?プロンプトから使用できるものを探しています。できれば追加のDLLを使用せずに、小さな軽いコマンドをお勧めします。
JMベッカー

2
コマンドラインインターフェイスがあるようです:dependencywalker.com/help/html/hidr_command_line_help.htm
Daniel A. White

3
構文は次のようになります。depends.exe/ c /oc:dependencies.csv /ot:dependencies.txt mydll.dll
Boinst

3
Dependency Walkerはうまく機能しますが、lddの単純さからの不快な変更です(特に、ツールのスクリプト作成に慣れている場合は、その出力を消費し、たとえば、タスクを自動的にパッケージ化します)。
zxq9 2015年

2
Windows 10でクラッシュします。
mikemaccana19年

42

このdumpbinコマンドは多くのことに役立ちますが、この場合、依存関係ウォーカーはおそらくもう少し冗長です。

dumpbin /dependents some.dll

出力例:

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Static Analysis Tools> dumpbin /dependentsStanPolicy.dll

ファイルStanPolicy.dllのダンプ

ファイルタイプ:DLL

画像には次の依存関係があります。

mscoree.dll

概要

    2000 .reloc
    2000 .rsrc
   1E000 .text

5
Visual Studioがインストールされている場合、これは最適なオプションです。
sakra 2015

36

またはGNUツール:

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

1
objdumpを使用してフルパスを表示できますか?再帰的に何かが必要です。これには、依存するDLLごとにフルパスが必要です
INS

3
objdumpは、ファイルに含まれる内容のみを表示します。のようにパスルックアップを実行しようとはしませんldd
ヨルゲンセン

26

PowerShellはこれを行うことができます

PS> Start-Process -PassThru calc.exe | Get-Process -Module

   サイズ(K)モジュール名
   ------- ----------
       908 calc.exe
      1700 ntdll.dll
      1148 kernel32.dll
       432 KERNELBASE.dll
     13856 SHELL32.dll
           ..。

6
これは、プログラムが実際にdllを検出する場合にのみ機能するように見えます。失敗した場合、リストは不完全です。
01d55 2016

12

wine実際のWindowsを使用しておらず、使用していない場合は、を使用できますWINEDEBUG=+loaddll wine <program>


7
WindowsをターゲットにするためにWineに対して開発することは、私が試してみる必要のある非常に奇妙なアイデアでした(私は主にLinuxをターゲットにしています)...実際、プロトタイピングで予想したよりもはるかにスムーズに機能してます。とても、とてもかっこいい。
zxq9 2015年

Re:Windowsの代わりにWineを使用した開発:Wineで機能するものが実際のWindowsで必ずしも機能するとは限らないことに注意してください。電話をかけるのを忘れたときにこれを学びましたGdiplusStartup。GDI+はWineでは問題なく動作しましたが、Windowsでは動作しませんでした。この間違いに気付いたのは、Wineでプログラムをデバッグし、次にWindowsで実行しようとした後です。
Ruslan 2017年

8

lddCygwinにがあります。非常に古いCygwinバージョンを使用している場合は、を使用する必要がありますcygcheck


はい、しかしそれはあまり正確ではありません
Stef 2015年

8

これを行うWindowsDeveloperの方法は、を使用することだと思いますdumpbin /dependents source.exe。Visual Studioがインストールされている場合は、次の場所にありますC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe


3
残念これは、あなたが正確に実行時に実際に使用されるもの:(見ることができるように扶養家族が発見されている場合は表示されません。
rubenvb

SysInternalsMSスイートの@rubenvbProcess Explorerには、パスやシンボル/ dll検索など、バイナリがロードするすべてのDLLの下部ペインビューがあります。
ケビンフ

7

Windows上のGitの新しいバージョンには、GitBASHと呼ばれるものがパッケージ化されています。、lddを含む多くの便利なUnixコマンドをエミュレートするます。

見つかったライブラリのみを報告しているようです。したがって、これを使用して、使用されているライブラリが配置されている場所の概要を取得できますが、不足しているライブラリは取得できません。



0

Windows 10の場合、Visual Studio 2017では、Windowsの検索バーに移動して次のように入力します。

「VS2017の開発者コマンドプロンプト」(Visual Studio開発者向けの特別なcmd.exe)

これにより、\ IMPORTSタグとともに使用する必要があるDUMPBINにアクセスできます。たとえば、正しいディレクトリ:

DUMPBIN \ IMPORTS yourfile.exe(他の拡張子も機能する可能性があります)

私にとって、これはDLLと使用される関数をリストします。

または、より詳細なタグ\ ALLを使用することもできます。

DUMPBINのMicrosoftの説明を参照してください。

https://docs.microsoft.com/en-us/cpp/build/reference/imports-dumpbin?view=vs-2019

コマンドによって返送されたコンテンツの例(一部のみ)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.