QT程序探测所需DLL,静态连接和打包
2024-08-27 03:52:21
1. 如果没有使用静态编译的QT库的话,那么无论VS还是MinGW编译出来的exe程序都要带上一堆DLL,而且必须是准确版本的DLL,对于VS好像还有一个Microsoft.VC90.CRT.manifest的问题(目前还没搞懂)。探测所需DLL可以用以下三个工具之一:
MS Dependence
Dependency Walker
Process Explorer
其中Process Explorer最好,因为它准确的列出了当前运行程序需要的DLL的准确路径。前两个只是列出名字,可是一个机子上有许多同名DLL,到底哪个正确呢?所以就要靠这个工具了,然后一一拷贝到同一目录下即可。
2. 我在WIN7 x64下使用VS2008 SP1编译的程序不能直接在XP下运行,必须安装vcredist_x86.exe,这样太麻烦了,难道在x64下跑还要再带一个文件?貌似有办法:VS2008 编译的程序 Release 版本不装 vcredist_x86.exe 也能跑的解决方法:
http://hi.baidu.com/pass86/item/9cb37795d6d2f2f028164726
3. 打包工具:这里选用Enigma Virtual Box,待续。
-----------------------------------------------------------------
总结:最好既静态编译QT,不仅仅是为了减小文件,更主要是为了避免客户那里库文件混乱从而无法使用;其次是静态编译项目本身,避免携带vcredist_x86.exe。最后还可以打包,那就完美啦~
最新文章
- MapFile生成WMS
- 【Hibernate框架】关联映射(多对多关联映射)
- Java单例模式实现(线程安全)
- --查询nvarchar(max)的表和字段
- 使用dwr时动态生成table的一个小技巧
- 欢迎加入.Net高级部落 173844862
- ml的线性回归应用(python语言)
- 《C#并行编程高级教程》第4章 并发集合 笔记
- 九度OJ 1077 最大序列和 -- 动态规划
- Java和Tomcat类加载机制
- underscorejs-invoke学习
- Codeforces Round#310 div2
- Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等
- 使用log4j无法输出日志
- JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)
- Android开发心得-使用File ExPlorer无法访问系统内部文件
- 使用iSCSI服务部署网络存储
- python bmp转jpg 且灰度图转彩色
- DTW的原理及matlab实现
- react-router与react-router-dom使用时的区别