设为首页 收藏本站
查看: 688|回复: 0

win7 vs2008 release mt.exe停止工作

[复制链接]

尚未签到

发表于 2015-5-19 06:25:58 | 显示全部楼层 |阅读模式
  今天使用VS2008,想要release编译时出现“mt.exe停止工作”,网上最多在解决方法是:
  alt+f7 打开项目的属性窗口
  清单工具--》输入和输出--》嵌入清单   默认“是”  将其值改成“否”
  但这样的话生成的exe文件需要带着相关的..manifest文件才能运行。因为它没把清单嵌入进去,可见这种方法是不行的。
  最终我找到了另一个解决方法(http://hi.baidu.com/herohbc/blog/item/726b02025f3cc5f709fa93e8.html):如下
  昨天晚上用VS2008编译Qt的程序时,突然弹出下面的对话框,提示mt.exe已停止工作。
http://hi.iyunv.com/attachment/201112/22/0_132454264143x8.gif

http://hi.iyunv.com/attachment/201112/22/0_1324542638C6IA.gif

  

  单击取消或者关闭程序后,给出以下错误信息:
  1>------ Build started: Project: findDialog, Configuration: Debug Win32 ------
1>Compiling...
1>finddialog.cpp
1>Linking...
1>Embedding manifest...
1>Project : error PRJ0002 : Error result -1073741819 returned from 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe'.
1>Build log was saved at "file://F:\temp\QT\findDialog\Debug\BuildLog.htm"
1>findDialog - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

可以发现,编译和连接都没有问题,能够生成可执行程序,是在Embedding manifest的时候出现的错误。  多次调试,都出现相同的问题。为了解决问题,我进行了以下试验。
  1.重启VS2008,不能解决问题。
  2.重启电脑,不能解决问题。
  3.在Release环境下调试,弹出相同的对话框。
  4.调试不是基于Qt的程序,没有任何问题,可以确定是Qt的影响。但我前几天调试Qt的程序也没有问题。
  5.按照网上的帮助,在Debug环境下,将Project->findDialog Properties->Configuration Properties->Linker->Manifest File中的Generate Manifest由原来的Yes设置为No,这时可以成功地进行编译和连接,但运行的时候弹出以下对话框。
http://hi.iyunv.com/attachment/201112/22/0_1324542649ziGD.gif
我又去网上下载了一个msvcr90d.dll文件,放到可执行程序所在的目录下,再运行程序,弹出下面的对话框。
http://hi.iyunv.com/attachment/201112/22/0_1324542652WNaX.gif
看来并不是真的缺少文件mscvr90d.dll。
  6.在Release环境下,将Generate Manifest设置为No,也可以编译和连接成功,但运行的时候依然提示缺少文件mscvr90d.dll。我觉得应该是mscvr90.dll,不知道怎么回事。
  7.以前编写的Qt程序程序都可以正常运行,再一次说明了并不是真的缺少文件mscvr90d.dll。再说我也没有删除这个文件啊。
  8.将以前编写的Qt程序重新调试一下,依旧不能调试成功,生成的可执行文件也不能运行。应该是VS2008和Qt的兼容出现了问题。
  9.同样按照网上的帮助,将Project->findDialog Properties->Configuration Properties->C/C++->Code Generation中的Runtime Library由原来的Multi-threaded Debug DLL (/MDd)设置为Multi-threaded Debug(/MTd),调试时出现以下错误
  1>------ Build started: Project: findDialog, Configuration: Debug Win32 ------
1>Compiling...
1>finddialog.cpp
1>moc_finddialog.cpp
1>qrc_finddialog.cpp
1>main.cpp
1>Generating Code...
1>Linking...
1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z)already defined in LIBCMTD.lib(typinfo.obj)
1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z)already defined in LIBCMTD.lib(typinfo.obj)
1>LIBCMTD.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>F:\temp\QT\findDialog\Debug\findDialog.exe : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://F:\temp\QT\findDialog\Debug\BuildLog.htm"
1>findDialog - 3 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
  这次是连接错误。在Release环境下,也出现上述错误信息。
  10.经过这么多的试验,依然没有解决问题。最近既没有装新的软件也没有对VS2008的配置进行修改,想来想去只有一个可能,那就是Windows Update导致的。打开Windows Update的更新历史记录
http://hi.iyunv.com/attachment/201112/22/0_1324542655t636.gif
可以发现,用于Windows 7 x86的Microsoft.Net Framework 4 Client Profile(KB982670)是最可能导致问题出现的更新。在控制面板的程序卸载窗口中卸载掉该程序,重新启动电脑后,再调试Qt程序,一切OK了!
  该更新的说明如下:Microsoft .NET Framework 4 Client Profile 提供了 .NET Framework 4 中的一部分功能。Client Profile 可优化客户端应用程序并且能够尽可能快地部署 Windows Presentation Foundation (WPF) 和 Windows 窗体。
  Qt恰恰是设计用户界面的,二者不兼容也就可以理解了。
  注:估计大家很少遇到与本文完全一样的问题。我写这篇文章的目的是演示如何用排除法一步步的解决问题,毕竟每个人遇到的问题不一样,单靠去网上搜索是行不通的,关键还是养成一种分析问题和解决问题的能力。呵呵,本人文采不好,多包涵。
  

  

  

  按上前面的说明,本人删除了Microsoft .NET Framework 4 Client Profile确实可以 正常release了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-68268-1-1.html 上篇帖子: Win7 未在本地计算机上注册Microsoft.Jet.OLEDB.4.0提供程序 下篇帖子: 计算机无任何系统无光驱,U盘安装WIN7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表