相关文章推荐
粗眉毛的镜子  ·  如何准确地使用Metals和VS代码调试器? ...·  9 月前    · 
逼格高的饭盒  ·  python 泛型约束 ...·  9 月前    · 
善良的水煮鱼  ·  深度解析开源推荐算法框架EasyRec的核心 ...·  1 年前    · 
旅行中的书包  ·  Fabric.js介绍 第一部分 - 简书·  1 年前    · 
豪情万千的铁板烧  ·  用Python编程解决chatGPT都不能完 ...·  2 年前    · 
Code  ›  Windows下程序打包发布时的小技巧开发者社区
动态库
https://cloud.tencent.com/developer/article/1023103?areaSource=106005.13
侠义非凡的毛衣
2 年前
作者头像
24K纯开源
0 篇文章

Windows下程序打包发布时的小技巧

前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 24K纯开源 > 正文

Windows下程序打包发布时的小技巧

发布 于 2018-01-18 11:03:57
1.2K 0
举报

一、背景

Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去。这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要。很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了 Dependency Walker 这个小工具。但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了。看得你一脸懵逼:

你很难分清楚:倒底哪些DLL是需要打包的,哪些DLL是系统自带的。而作为打包过程中的一个小步骤,我根本不需要知道这么多信息。这个时候,我们需要一个更加简洁明了的工具。dumpbin就是今天要介绍的主角。

二、使用

dumpbin是随Visual Studio一起发布的,在Visual Studio的“本机工具命令行”中就可以直接使用。使用的第一步就是打开Visual Studio的“本机工具命令行”:

这里我选择的是“VS2015 X64本机工具命令提示符”。命令行窗口打开后直接进入到工程目录,输入命令“ dumpbin /IMPORTS ReplaceAETemplate.exe > output.txt ”:

Duang~~~,所有依赖的DLL项都保存到output.txt里面去了。打开瞧瞧输出内容:

依赖的动态库一项项的非常清晰明了。当然,里面也会列出一些系统的动态库。这些系统动态库在系统安装时就有了,所以不用打包进去。当然就算打包进去也不会有什么害处。这个命令再配合everything这个小工具查找依赖的DLL,简直不要太爽:

三、小结

dumpbin的IMPORTS参数是用来查看程序依赖的其他动态库的,这对于可执行程序exe和动态链接库DLL都是适用的。EXPORTS则适用于DLL查看其导出的函数接口:

结果照样重定位到output.txt中去了。这是因为如果直接在命令行中输出,前面的内容可能会被截断,导致内容看不完整。

从上面红框中可以看出,UniversalBlender.dll这个动态链接库导出了这么一些函数:capabilityAssessment, initializeDevice, runImageBlender等。

点击展开阅读全文
文章分享自:
作者个人站点/博客
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表:2016-09-23 , 如有侵权请联系 cloudcommunity@tencent.com 删除

windows
qt
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
粗眉毛的镜子  ·  如何准确地使用Metals和VS代码调试器?-腾讯云开发者社区-腾讯云
9 月前
逼格高的饭盒  ·  python 泛型约束 泛型作为方法参数_mob6454cc70219b的技术博客_51CTO博客
9 月前
善良的水煮鱼  ·  深度解析开源推荐算法框架EasyRec的核心概念和优势-腾讯云开发者社区-腾讯云
1 年前
旅行中的书包  ·  Fabric.js介绍 第一部分 - 简书
1 年前
豪情万千的铁板烧  ·  用Python编程解决chatGPT都不能完全答对的问题:123456789=100 - 墨天轮
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号