विंडोज़ पर लिनक्स के ldd के बराबर क्या है?


जवाबों:


53

यहां डिपेंडेंसी वॉकर है।

http://dependencywalker.com/


5
केवल कमांड लाइन के लिए ldd की तरह कुछ भी मौजूद है? मैं एक संकेत से उपयोग कर सकते हैं कुछ के लिए देख रहे हैं। एक छोटे से प्रकाश कमांड को प्राथमिकता दें, अधिमानतः अतिरिक्त DLL के बिना।
जेएम बेकर

2
ऐसा प्रतीत होता है कि इसमें कमांड लाइन इंटरफ़ेस है: dependencywalker.com/help/html/hidr_command_line_help.htm
डैनियल ए। व्हाइट

3
Depends.exe / सी /oc:dependencies.csv /ot:dependencies.txt mydll.dll: सिंटैक्स इस तरह दिखता है
Boinst

3
निर्भरता वॉकर अच्छी तरह से काम करता है, लेकिन ldd की सादगी से एक झकझोरने वाला बदलाव है (खासकर यदि आप एक स्क्रिप्ट का उपयोग करने के लिए उपयोग किया जाता है जो इसके आउटपुट का उपभोग करते हैं और कहते हैं, इसके साथ स्वचालित रूप से पैकेजिंग कार्य करते हैं)।
zxq9

2
विंडोज 10. पर दुर्घटना
मिकेमाकाना

42

dumpbinआदेश, कई बातों के लिए उपयोगी हो सकता है, हालांकि इस मामले निर्भरता में वॉकर अधिक वर्बोज़ शायद एक छोटे से है।

dumpbin /dependents some.dll

उदाहरण आउटपुट:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Team Tools \ Static Analysis Tools> डंपबिन / आश्रितों StanPolicy.dll

फ़ाइल StanPolicy.dll की डंप

फ़ाइल प्रकार: DLL

छवि में निम्नलिखित निर्भरताएँ हैं:

mscoree.dll

सारांश

    2000 .reloc
    2000 .rsrc
   1E000 .text

5
यदि आपके पास Visual Studio स्थापित है, तो यह सबसे अच्छा विकल्प है।
सकर

35

या GNU टूल:

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

1
क्या पूर्ण मार्ग प्रदर्शित करने के लिए objdump का उपयोग किया जा सकता है? मुझे पुनरावर्ती कुछ चाहिए और इसके लिए प्रत्येक निर्भर DLL के लिए पूर्णपथ की आवश्यकता है
INS

3
objdump केवल आपको दिखाता है कि फ़ाइल में क्या है। यह किसी भी तरह की खोज करने का प्रयास नहीं lddकरता है।
जोर्जेंसन

26

PowerShell ऐसा कर सकता है

PS> स्टार्ट-प्रोसेस -PassThru calc.exe | गेट-प्रोसेस -मॉडल

   आकार (K) मॉड्यूल नाम
   ------- ----------
       908 calc.exe
      1700 ntdll.dll
      1148 कर्नेल 32.dll
       432 KERNELBASE.dll
     13856 SHELL32.dll
           ...

6
ऐसा प्रतीत होता है कि यह केवल काम करता है क्योंकि प्रोग्राम वास्तव में डीएलएस पाता है - विफलता के मामले में सूची अधूरी है।
01d55

12

यदि आप wineWindows का उपयोग कर रहे हैं और वास्तविक नहीं हैं, तो आप उपयोग कर सकते हैं WINEDEBUG=+loaddll wine <program>


7
वाइन को लक्ष्य बनाने के लिए विंडोज के खिलाफ विकास करना मुझे बहुत अजीब लगा, क्योंकि मुझे इसे एक कोशिश (I मुख्य रूप से लिनक्स को लक्षित) करना था ... और वास्तव में यह प्रोटोटाइप के लिए मेरी अपेक्षा से कहीं अधिक चिकनी काम कर रहा है। बहुत बहुत शांत।
zxq9

विंडोज के बजाय वाइन का उपयोग कर विकास: ध्यान दें कि वाइन में जो काम करता है वह जरूरी नहीं कि असली विंडोज पर काम करेगा। मुझे यह तब पता चला जब मैं कॉल करना भूल गया GdiplusStartup, और GDI + ने वाइन में समस्याओं के बिना काम किया, जबकि विंडोज पर यह नहीं था। मैंने वाइन में प्रोग्राम डिबग करने के बाद केवल इस गलती पर ध्यान दिया, इसे विंडोज में चलाने की कोशिश कर रहा था।
रुस्लान

8

lddसाइगविन में अब है। यदि आपके पास बहुत पुराना Cygwin संस्करण है, तो आपको उपयोग करना होगा cygcheck


हां, लेकिन यह बहुत सटीक नहीं है
स्टेफ़

8

मुझे लगता है कि इसका उपयोग करने के लिए विंडोज डेवलपर तरीका है dumpbin /dependents source.exe। यदि आपके पास विजुअल स्टूडियो स्थापित है, तो आप इसे यहां पा सकते हैं C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe:।


3
बहुत बुरा यह नहीं दर्शाता है कि जहां आश्रित पाए जाते हैं, इसलिए आप ठीक से देख सकते हैं कि कौन से वास्तव में रनटाइम पर उपयोग किए जाते हैं :(?
rubenvb

SysInternals MS सुइट से @rubenvb प्रोसेस एक्सप्लोरर में सभी DLL के बाइनरी लोड उनके पथ और प्रतीक / dll खोज सहित निचले फलक दृश्य हैं।
केविनफ

7

विंडोज पर Git के नए संस्करणों को GIT BASH नाम की कुछ चीज़ों के साथ पैक किया गया है , जो कि ldd सहित कई उपयोगी यूनिक्स कमांड का अनुकरण करता है।

ऐसा प्रतीत होता है कि यह केवल पुस्तकालयों की रिपोर्ट करता है जिन्हें पाया जा सकता है। तो आप इसका उपयोग एक अवलोकन प्राप्त करने के लिए कर सकते हैं कि उपयोग किए गए पुस्तकालय कहां स्थित हैं, लेकिन जो गायब नहीं हैं।



0

विंडोज़ 10 के लिए, दृश्य स्टूडियो 2017 के साथ, मैं खिड़कियों और प्रकार की खोज पट्टी में जाता हूं:

"वीएस 2017 के लिए डेवलपर कमांड प्रॉम्प्ट" (विजुअल स्टूडियो डेवलपर के लिए एक विशेष cmd.exe)

यह DUMPBIN तक पहुँच प्राप्त करने की अनुमति देता है जिसका उपयोग \ IMPORTS टैग के साथ किया जाना चाहिए। उदाहरण के लिए, सही निर्देशिका में:

DUMPBIN \ IMPORTS yourfile.exe (अन्य एक्सटेंशन भी काम कर सकते हैं)

मेरे लिए, यह DLL और उपयोग किए गए कार्यों को सूचीबद्ध करता है।

वैकल्पिक रूप से, आप टैग \ ALL का उपयोग कर सकते हैं जो बहुत अधिक क्रिया है।

DUMPBIN के microsoft स्पष्टीकरण देखें:

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

उदाहरण (केवल एक भाग के साथ) कमांड द्वारा वापस भेजा गया

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.