在PC上运行一个QTqt 获取程序运行路径报错

1586人阅读
qt开发(16)
出错信息:内存地址0x 禁止访问,程序被中止。
原因:plugins目录没找到相应插件造成的。
1.测试编译的exe需要哪些dll,暂时修改qtsdk***目录的文件夹名,运行exe时,提示却xxx.dll &,一一拷贝到exe同级目录&//制造无qt环境的pc
2.如果用到qt中的plugins下的库如:sqldrivers,codecs下的数据库驱动和中文编码等插件, QTextCodec
*定义时一定要定义成局部变量,否则运行exe出错。
3.main.cpp中添加上述插件路径plugins,使得程序也能从当前路径找plugins目录
& & //增加plugins插件目录使得能找到sqldrivers codecs目录,代码中QTextCodec只能定义为局部变量,不能定义成全局变量,否则还是找不到codecs目录
& & QString path = &./plugins&;
& & QApplication::addLibraryPath(path);
4.拷贝 qtsdk目录中的plugins目录到exe同级目录即可。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:256084次
积分:3289
积分:3289
排名:第8549名
原创:74篇
转载:76篇
评论:11条
(1)(1)(4)(1)(2)(10)(14)(27)(15)(5)(12)(28)(9)(2)(4)(3)(1)(2)(1)(2)(5)(1)开发所属系统:
window 7 x64
开发IDE & && 访问密码 5460&:
风和日丽,博主刚学Qt,手头有一个简单的项目,想真正实操一把,下午把多日积累的代码编译成发布版,打包放到同事的计算机上,试一试跑的效果,却发现这尴尬的情形。楼主根据堪忧的经验觉察到,在本机测试都好的,肯定是缺少环境库的问题,博主就寻觅资料。查找到如下解决方案。
[注意:库一定要源自自己Qt程序相对编译器bin目录下动态库,不要随意从网上下载,大多数情况下造成此等错误提示,一般由于动态库版本不符造成]
解决方案1 - 加载必备Qt开发库
众所周知Qt开发的程序要用到Qt自己的库文件dll,我的程序加载了如下dll文件。
D3DCompiler_43.dll
GdiPlus.dll
glut32.dll
icudt49.dll
icuin49.dll
icuuc49.dll
kernel32.dll
libEGL.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libmysql.dll
libstdc++-6.dll
libwinpthread-1.dll
mfc120u.dll
msvcp120.dll
msvcr120.dll
msvcrt.dll
PSDVR-II.exe
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
user32.dll
解决方案2 - 加载window下必备库
先新建文件夹[ platforms&] 然后将如下动态库放入该文件夹下
qwindows.dll
qminimal.dll
解决方案3 - ***运行库
&Microsoft Visual C++ 运行库 &&&& 访问密码 b7a8
下载***顺序,请按照版本次序从低到高***
例如:先***2005运行库后,再***2008运行库,最后***2012运行库。
解决方案4 - 迫不得已
在当前环境下***QT环境,编译程序。
解决方案5 - 终极必杀技
depends 依赖库调试工具 && && 访问密码 cb28
下载***后,将您需要发布的exe程序托拽入该界面,查看所有依赖库。
将所有关联库从当前环境下查找,全部拖拽入发布文件夹中。
动态库哪里来?
所有动态库尽可能从本机获取,qt的动态库,到自己QT环境下,进行搜索。
例如我的开发环境&D:\qt5.0.2
发布程序示例 &
&& & 访问密码 22e2
我的动画效果(gif\png\ico)为什么显示不了?
在发布文件夹下建立 [ imageformats&] 文件夹
里面放入对应的依赖库 例如 gif图片依赖库为:qgif.dll ,如此即可。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4606次
排名:千里之外
原创:27篇

参考资料

 

随机推荐