Windows에서 Linux의 ldd에 해당하는 것은 무엇입니까?


답변:


54

여기 Dependency Walker가 있습니다.

http://dependencywalker.com/


6
ldd와 같은 것이 명령 줄에만 존재합니까? 프롬프트에서 사용할 수있는 것을 찾고 있습니다. 가급적 추가 DLL없이 작은 light 명령을 선호합니다.
JM Becker

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

2
Windows 10에서 충돌합니다.
mikemaccana

42

dumpbin이 경우 종속성 워커가 좀 더 장황 할 수 있지만 이 명령은 여러 가지에 유용 할 수 있습니다.

dumpbin /dependents some.dll

출력 예 :

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

StanPolicy.dll 파일 덤프

파일 유형 : DLL

이미지에는 다음과 같은 종속성이 있습니다.

mscoree.dll

요약

    2000 .reloc
    2000 .rsrc
   1E000 .text

5
Visual Studio가 설치되어있는 경우 가장 좋은 옵션입니다.
sakra

36

또는 GNU 도구 :

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

1
objdump를 사용하여 전체 경로를 표시 할 수 있습니까? 나는 재귀 적으로 뭔가가 필요하고이 각 종속 DLL에 대한 fullpath에이 필요
INS

4
objdump는 파일에 포함 된 내용 만 표시합니다. 경로 조회를 시도하지 않습니다 ldd.
jørgensen

26

PowerShell로 할 수 있습니다.

PS> 시작 프로세스 -PassThru calc.exe | Get-Process-모듈

   크기 (K) 모듈 이름
   ------- ----------
       908 calc.exe
      1700 ntdll.dll
      1148 kernel32.dll
       432 KERNELBASE.dll
     13856 SHELL32.dll
           ...

6
이것은 프로그램이 실제로 dll을 찾는 경우에만 작동하는 것으로 보입니다. 실패한 경우 목록이 불완전합니다.
01d55

12

wine실제 Windows가 아닌 사용중인 경우 WINEDEBUG=+loaddll wine <program>.


7
Wine을 대상으로 Windows를 대상으로 개발하는 것은 정말 이상하게 생각했습니다. (저는 주로 Linux를 대상으로합니다.) 실제로 프로토 타이핑에서 예상했던 것보다 훨씬 원활하게 작동합니다 . 아주 멋져요.
zxq9

Re : Windows 대신 Wine을 사용한 개발 : Wine에서 작동하는 것이 반드시 실제 Windows에서 작동하는 것은 아닙니다. 을 (를) 호출하는 것을 잊었을 때 이것을 배웠고 GdiplusStartupGDI +는 Wine에서 문제없이 작동했지만 Windows에서는 그렇지 않았습니다. 이 실수는 Wine에서 프로그램을 디버깅하고 Windows에서 실행하려고 시도한 후에야 발견했습니다.
Ruslan

OS를 다시 시작하고 변경하지 않기 위해 항상 Wine에서 테스트합니다. 그러나 메이저 릴리스 이전 또는 약간 의심스러운 작업을 수행 한 경우에는 Windows 기본에서도 사용해 보는 것이 좋습니다.
Michael Eric Oberlin

8

이제 lddCygwin에 있습니다. 매우 오래된 Cygwin 버전을 사용하는 경우 cygcheck.


예,하지만 정확하지 않습니다
Stef

8

이 작업을 수행하는 Windows 개발자 방법은 dumpbin /dependents source.exe. Visual Studio가 설치되어있는 경우 여기에서 찾을 수 있습니다 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe..


3
당신이 정확하게 사람이 실제로 :( 런타임에 사용되는 볼 수 있도록 부양 가족이 발견되는 경우 너무 나쁜이 표시되지 않습니다.
rubenvb

SysInternals MS 제품군의 @rubenvb Process Explorer에는 경로 및 기호 / dll 검색을 포함하여 바이너리가로드하는 모든 DLL의 아래쪽 창보기가 있습니다.
kevinf

7

Windows에서 최신 버전의 Git은 ldd를 포함한 많은 유용한 Unix 명령을 에뮬레이트하는 Git BASH 라는 패키지로 제공됩니다 .

찾을 수있는 라이브러리 만보고하는 것으로 보입니다. 따라서 이것을 사용하여 사용 된 라이브러리의 위치에 대한 개요를 얻을 수 있지만 누락 된 라이브러리는 없습니다.



0

Windows 10의 경우 Visual Studio 2017을 사용하면 창의 검색 창으로 이동하여 다음을 입력합니다.

"VS 2017 용 개발자 명령 프롬프트"(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.