应用场景

在使用QT等图形用户界面应用程序开发框架开发Windows程序时,通常需要将写到的程序发布到其它计算机中进使用。在使用Qt发布程序时,虽然使用windeployqt工具能够自动打包好大部分依赖库,但还是难免会漏掉一些第三方库导致发布的程序无法在其它机器中运行。比较常见的弹出如下所示:

还有一种场景是我们在调用第三方dll库时,不知道有哪些函数接口,不明白库与库之间的依赖调用关系。这些问题都可以使用depends工具来帮助解决。

简介

depends工具全称叫做Dependency Walker,根据名称就能大致明白它是一款用来检测依赖关系的工具,我们直接翻译下官方的介绍:

Dependency Walker是一个免费实用程序,它可以扫描任何32位或64位Windows模块(exe、dll、ocx、sys等),并构建所有依赖模块的层次树图。对于找到的每个模块,它列出了该模块导出的所有函数,以及其他模块实际调用的函数。另一个视图显示所需文件的最小集合,以及每个文件的详细信息,包括文件的完整路径、基址、版本号、计算机类型、调试信息等。

Dependency Walker对于排除与加载和执行模块相关的系统错误也非常有用。Dependency Walker可以检测许多常见的应用程序问题,例如缺少模块、模块无效、导入/导出不匹配、循环依赖性错误、模块的机器类型不匹配以及模块初始化失败。

Dependency Walker完全免费使用。但是,您可能无法从分销中获利,也不能将其与其他产品捆绑在一起。

使用方法

软件使用方法十分简单,安装过程在此不做赘述,进入官网下载软件后正常安装即可。
打开软件后,直接将要我们想要查看依赖关系的exe程序或者dll文件拖拽到窗口中灰色区域,拖拽后软件可能会卡顿一段时间,此时软件正在快速分析依赖关系,耐心等待即可,时间长短与依赖关系复杂程度相关。

加载完成后,在窗口左上方区域便可以看到依赖关系,在右侧中间窗口,可以看到dll中的函数符号。

如果电脑没有检测到相应库的文件,会提示为红色。我们只需在我们开发软件的电脑中找到该库文件,将其加入到发布程序中去就可以解决程序在其它机器无法运行的问题了。

depends工具查看exe和dll依赖关系相关推荐

  1. 将dumpbin从VS中抠出来,并使用dumpbin查看exe和dll库的依赖关系

    目录 1.初步说明 2.在开发的机器上使用dumpbin工具查看dll库的依赖关系 3.将dumpbin.exe从Visual Studio中抠出来 3.1.找到dumpbin.exe文件及其依赖的d ...

  2. 如何查看exe或dll调用了什么dll

    [转载]如何查看exe或dll调用了什么dll呢 已有 19410 次阅读 2014-4-17 21:08|系统分类:科研笔记|文章来源:转载 Dependency Walker使用说明 在Windo ...

  3. Windows查看文件占用情况、查看程序的dll依赖项

    "人生若只如初见,何事秋风悲画扇?等闲变却故人心,却道故人心易变." 文章目录 一.查看文件占用情况 1.资源监视器(系统自带) 2.Handle.exe(Sysinternals ...

  4. android studio依赖关系图,Android studio 如何查看 library 间的依赖关系

    本文简单介绍一下查看 library 的依赖关系的具体方法. 一.配置环境 Android Studio中使用的 gradle 版本一般不是最新版,所以在使用其自带的 Terminal 时容易报版本过 ...

  5. npm 查看指定 package 的依赖关系

    npm 查看指定 package 的依赖关系 npm ls lodash 在 pnpm 中使用方法是 pnpm why lodash

  6. 如何查看exe或dll的依赖库dll

    打开VS的安装目录,打开到shortcuts文件目录:如下图所示: 然后根据你的编译环境,选择对应的工具命令提示,本文所用到的exe是VS13版本64位环境下编译得到的,所以选择"VS201 ...

  7. 查看exe和dll等二进制文件时间戳(生成时间)的工具与方法介绍

    目录 1.为何要查看二进制文件的时间戳 2.使用PEViewer工具查看文件的时间戳

  8. VC++中Depends工具的使用和DLL函数的动态调用方式示例

    VC++中Depends工具:Depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(动态链接库dll),以及该exe或dll引用了这些dll中的哪些接口,同时也可以看到每个被依赖的d ...

  9. Windows/Linux如何查看动态库的依赖关系?

    Windows 下使用工具: https://github.com/lucasg/Dependencies Linux 下, 可用ldd 工具查看依赖,但ldd无法查看具体的依赖关系,推荐一个好用的工 ...

  10. ubuntu笔记:查看Ubuntu的包依赖关系

    1 以下看谁依赖了libboost1.71-tools-dev? aptitude why libboost1.71-tools-dev 结果: i   libboost-all-dev   依赖 l ...

最新文章

  1. 《UML大战需求分析》阅读笔记1
  2. c语言 python-C语言和python的区别
  3. fiddler抓包工具简介
  4. php get请求 json返回,[1.23]-请求和响应:GET和POST两者皆可得及超越JSON格式返回 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...
  5. JavaScript总结(3)
  6. Java小知识-----Map 按Key排序和按Value排序
  7. 可以直接考甲级吗_成人高考可以考本科吗?成人高考可以考研究生吗?
  8. TensorFlow官方发布剪枝优化工具:参数减少80%,精度几乎不变
  9. node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
  10. 传输层协议TCP和UDP分析
  11. Ubuntu使用Windows字体
  12. linux convert命令把gif转jpg
  13. 所有文件夹都变成1KB文件夹快捷方式病毒的手动清除方法
  14. 和老外聊天、发邮件常用英语缩写(超实用)
  15. HTML5之帆布(canvas)(三)
  16. 龙的战争 Dragon ‘s War
  17. vs2013编译ffmpeg之二十六 opus、shine
  18. 数独游戏-C语言实现
  19. 是否有唯一的 Android 设备 ID?
  20. Axure 初学者必看:自学 Axure 需要花多长时间?

热门文章

  1. 大众新能源电动车ID.3ID.4技术培训教材手册维修手册电路图
  2. windows 匿名管道: 父进程与子进程通信 (进程间通信之CreatePipe)
  3. 哇嘎显示等待无服务器,vagaa搜索不到资源怎么回事?vagaa哇嘎搜索没反应的解决方法...
  4. 谷歌地球尝试验证时检测到错误_深思考丨验证码为何越来越难了?
  5. 利用BP神经网络求解非线性方程组
  6. 晶体表面原子结构和一篇论文
  7. 信息学奥赛 python 教程_NOIP信息学竞赛入门小经验
  8. 防止汽轮机严重超速的技术措施 22437
  9. IDEA安装谷歌翻译插件Translation
  10. 传说中的世界500强面试题-推理能力(1)