我如何找出Cygwin程序的dll依赖项?

时间:2015-10-17 06:36:27

标签: dll cygwin

鉴于Cygwin可执行文件,我如何找到它所依赖的所有dll? 对于由系统可执行加载器加载的库,我可以使用像depends(又名Dependency Walker)这样的工具,但我不知道如何跟踪程序试图动态加载的dll。加载库。

我的目标是能够获取为Cygwin平台构建的程序的最小依赖性,以使其工作可移植,没有它将永远不会使用的所有Cygwin东西(一些基本命令行工具,手册页等)。

感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

其中一个会这样做。请注意,您可以忽略 Windows 文件夹中的任何内容, 因为这些DLL将在任何Windows系统上。

$ ldd /bin/grep
        ntdll.dll => /Windows/SYSTEM32/ntdll.dll (0x77200000)
        kernel32.dll => /Windows/system32/kernel32.dll (0x76fe0000)
        KERNELBASE.dll => /Windows/system32/KERNELBASE.dll (0x7fefd090000)
        cygwin1.dll => /usr/bin/cygwin1.dll (0x180040000)
        cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x3ffb00000)
        cygintl-8.dll => /usr/bin/cygintl-8.dll (0x3ffae0000)
        cygpcre-1.dll => /usr/bin/cygpcre-1.dll (0x3ff850000)

或者

$ cygcheck /bin/grep
C:\cygwin64\bin\grep.exe
  C:\cygwin64\bin\cygwin1.dll
    C:\Windows\system32\KERNEL32.dll
      C:\Windows\system32\API-MS-Win-Core-RtlSupport-L1-1-0.dll
      C:\Windows\system32\ntdll.dll
      C:\Windows\system32\KERNELBASE.dll
      C:\Windows\system32\API-MS-Win-Core-ProcessThreads-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Heap-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Memory-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Handle-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Synch-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-File-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-IO-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-ThreadPool-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-LibraryLoader-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-NamedPipe-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Misc-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-SysInfo-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Localization-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-ProcessEnvironment-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-String-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Debug-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-ErrorHandling-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Fibers-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Util-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Core-Profile-L1-1-0.dll
      C:\Windows\system32\API-MS-Win-Security-Base-L1-1-0.dll
  C:\cygwin64\bin\cygiconv-2.dll
  C:\cygwin64\bin\cygintl-8.dll
  C:\cygwin64\bin\cygpcre-1.dll