• 6092阅读
  • 6回复

vc2005生成的可执行文件运行错误 [复制链接]

上一主题 下一主题
离线sbtree
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-06
— 本帖被 XChinux 执行加亮操作(2008-10-06) —
环境,操作系统windows vista,安装了3个版本的vc,2003,2005,2008以及qt4.3.3和4.4.0,用vc2005从.pro文件导入qt4.4.0的例子,选择使用4.4.0版本编译,生成后的可执行文件在本机上也无法运行,并弹出如下错误窗口

检查动态库版本依赖关系,发现应用程序中带有两个版本依赖,尝试尝试删除其中一个,并修改了相应的外部.manifest文件,错误依然,尝试不嵌入清单文件,没有任何效果,请高手指点
windows 7 + VC++2008 + Qt4.5.2
离线sbtree
只看该作者 1楼 发表于: 2008-10-06
上面的错误窗口是在德语的操作系统下截取的,所以描述是德语的。大概意思就是:在DLL文件“QtGui4.dll”中找不到进程入口“?focusNextPrevChild@QGraphicsView@@MAE_N_N@Z”。编译的例子是diagramscene
windows 7 + VC++2008 + Qt4.5.2
离线sbtree
只看该作者 2楼 发表于: 2008-10-06
上面的错误出现在安装了vc2008之后,不知道vc2008的安装程序对vc2005作了什么操作。在安装vc2008之前曾经用2005编译过,生成的可执行文件是可以在本机运行的
windows 7 + VC++2008 + Qt4.5.2
离线guoyun_he

只看该作者 3楼 发表于: 2008-10-07
dll文件找不到,你把应用程序放到qt/bin目录下运行看看!
离线sbtree
只看该作者 4楼 发表于: 2008-10-07
引用第3楼guoyun_he于2008-10-07 08:30发表的  :
dll文件找不到,你把应用程序放到qt/bin目录下运行看看!


试过了,把可执行文件,vc的运行库和清单文件都考到了qt/bin下面,另外的错误出现了


我觉得,vc2005对版本的依赖很成问题,除了必须安装再分发包,没有什么更好的方法,特别是给系统升级以后或者安装更高版本的vc以后(当然是安装在不同目录了,两个环境并行存在),重新使用vc2005编译生成的程序会莫名其妙地运行不了了。所谓的私有并行程序集仅限于初装vc2005的时候还管用。 怀疑是不是微软在注册表中作了什么操作致使编译系统总是依赖于最新的动态库或者相关的文件,有没有明白人给解释解释?
windows 7 + VC++2008 + Qt4.5.2
离线llseptem
只看该作者 5楼 发表于: 2008-10-07
和我的问题类似,但是我用debug版本是可以的,就是用QtGuid4.dll可以
离线sbtree
只看该作者 6楼 发表于: 2008-10-07
大家是不是都搞linux去了?搞懂windows其实不比搞懂linux容易,毕竟linux还有核心源代码可参考,windows可真是黑盒子哦
windows 7 + VC++2008 + Qt4.5.2
快速回复
限100 字节
 
上一个 下一个