vs2010 qt release 下可执行文件不能运行

问题:vs2010 qt release 下可执行文件不能运行,但是已属性管理员可以运行

最新在使用vs2010 开发qt 程序中发布release程序的时候出现的一些问题,以下个人做个总结希望能帮助需要的人。

项目开发背景:

项目环境使用的是vs2010、qt5.0.0、win8

开发目标:

程序在debug、release 模式下通过vs2010 编译器运行正常,最终需要将release版本程序(这里将对应qt的dll 文件都拷贝这里了另外加上plugins目录),拷贝其他电脑进行运行。

以下遇到的问题:

在工程中对应release 目录下(D:\GitHub\zxjyu-pc\bin\Win32\Release)

扫描二维码关注公众号,回复: 278498 查看本文章

 

 

 

点击运行对应xxxx.exe发现没有任何反映,但是通过鼠标右击选择管理员权限运行是可以正常运行的,这时候考虑的就是是否项目中进行了权限设置最后有进行设置UAC执行级别,但是还是不能直接点击程序运行。该问题纠结1天了,最后通过vs在release模式下

 运行并且使用ProcessExplorer



 

来查看xxxx.exe文件的依赖,通过分析发现其中有qt部分dll 是直接使用D:\GitHub\zxjyu-pc\bin\Win32\Release下的xxxx.dll ,qwindows.dll 这个dll引用地址是我对应qt安装的目录下的,这时候我直接把release 目录下的plugins 里面的目录文件直接拷贝到release下(plugins 目录下存在imageformats、platforms)

 

然后在点击xxxx.exe 直接可以运行。

最后总结:

这里是由于exe文件需要访问本地资源没有权限。最好是排查下exe文件对应依赖是否在当前目录下,如果不是这时候运行肯定失败。最后有几个分析exe依赖的工具,ProcessExplorer、depends 工具。

猜你喜欢

转载自yangguangftlp.iteye.com/blog/2375246
今日推荐