关于VS调试时出现的找不到可执行文件问题的可能的解决办法
2010-11-27 11:38
946 查看
VS 2005在生成可执行文件时运用了一种新的技术,该技术生成的可执行文件会随同生成一个清单文件(manifest file)(.manifest后缀文件)(其实质上是XML文档,你能够用文本编辑器翻开看看),并在链接完成后将该清单文件嵌入到exe文件中(默许状况下)。而在FAT32文件系统中,在处置清单文件阶段,当增量链接时不能完成清单文件的更新(默许状况下),于是形成清单文件嵌入失败,从而使该exe文件运转时没有相应的清单文件而运转失败并提示如上错误。
处理计划很多,罗列如下:
1. 由于这是在链接动态运转库呈现的问题,所以你能够选择代码生成的衔接方式为/MTd而非/MDd,不用这些DLL文件从而防止问题的呈现。该办法有一个很显然的缺陷:适用范围有限,不引荐该办法。
2. 既然跟FAT32系统有关,那么本人们能够选择在NTFS文件系统中开发从而防止该问题,此办法同上,也是采用的逃避问题的方式,不倡导。
3. 该办法仍与FAT32有关:在项目的“属性|配置属性|清单工具|常规”中的“运用FAT32处理方法”选择“是”(默许为“否”),重重生成项目即可处理问题。该办法是独一真正针对问题所在而提出的处理办法,使清单工具能够正确更新。(此办法是官方处理办法,也比拟便当,引荐)
4. 既然问题是在更新嵌入的清单文件时发作的,由于FAT32的缘由而未能更新嵌入的清单文件,于是本人们有如下两种处理办法:
(1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此办法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默许的依据时戳而决议能否更新清单文件。
(2)不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默许状况下,其文件名为exe文件的全名加上“.manifest”),防止了嵌入清单文件可能失败的问题。在程序运转时,会用到该清单文件。显然,这种方式使可执行程序产生了更多的外部依赖,不引荐。
另外,还有一个不能称为办法的土方法C拦畚Build前手动删除*.ilk文件(增量链接文件)(当然能够在项目属性中写入删除命令,使其自动执行),不引荐该土方法。
最后,总结一下:
1. 此问题只在特定条件下才会呈现:在FAT32文件系统中编译、默许设置(增量形式、不启用FAT32处理计划、嵌入清单文件)、非第一次生成可执行文件文件(即在增量衔接、更新清单文件时)。
2. 处理计划1和4.1便当适用,引荐运用。
处理计划很多,罗列如下:
1. 由于这是在链接动态运转库呈现的问题,所以你能够选择代码生成的衔接方式为/MTd而非/MDd,不用这些DLL文件从而防止问题的呈现。该办法有一个很显然的缺陷:适用范围有限,不引荐该办法。
2. 既然跟FAT32系统有关,那么本人们能够选择在NTFS文件系统中开发从而防止该问题,此办法同上,也是采用的逃避问题的方式,不倡导。
3. 该办法仍与FAT32有关:在项目的“属性|配置属性|清单工具|常规”中的“运用FAT32处理方法”选择“是”(默许为“否”),重重生成项目即可处理问题。该办法是独一真正针对问题所在而提出的处理办法,使清单工具能够正确更新。(此办法是官方处理办法,也比拟便当,引荐)
4. 既然问题是在更新嵌入的清单文件时发作的,由于FAT32的缘由而未能更新嵌入的清单文件,于是本人们有如下两种处理办法:
(1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此办法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默许的依据时戳而决议能否更新清单文件。
(2)不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默许状况下,其文件名为exe文件的全名加上“.manifest”),防止了嵌入清单文件可能失败的问题。在程序运转时,会用到该清单文件。显然,这种方式使可执行程序产生了更多的外部依赖,不引荐。
另外,还有一个不能称为办法的土方法C拦畚Build前手动删除*.ilk文件(增量链接文件)(当然能够在项目属性中写入删除命令,使其自动执行),不引荐该土方法。
最后,总结一下:
1. 此问题只在特定条件下才会呈现:在FAT32文件系统中编译、默许设置(增量形式、不启用FAT32处理计划、嵌入清单文件)、非第一次生成可执行文件文件(即在增量衔接、更新清单文件时)。
2. 处理计划1和4.1便当适用,引荐运用。
相关文章推荐
- 关于VS2010调试时出现的找不到可执行文件问题的可能的解决办法
- 解决问题:vs 使用命令行参数调试时出现"当前项目设置指定将使用特定的安全权限对该项目进行调试.在此模式下,命令行参数将不会传递给可执行文件."
- 在WIN10系统下运行VS2013编译成功后出现:无法启动程序“.exe” 系统找不到指定文件的问题的解决方法
- C#执行批处理,当批处理不在程序根目录时,出现“找不到文件”的问题的解决方法
- 我把一个VC6的工程转换为VS2008的工程后,编译总是出现找不到而且不能升级vc90.pdb文件的问题,error C2471--解决办法 2010-9-16 15:01
- android编程中遇到的关于调试百度地图时出现的 java.lang.UnsatisfiedLinkError: initClass 问题的原因及解决办法
- .NET:关于byte数组在用StreamWriter文件写出后出现多余字符的解决方法及VS方案文件图标显示问题
- 关于scanf与scanf_s的区别,以及用scanf编译出错并且提示找不到可执行文件.exe的解决办法。
- 解决VS编译出现Moc'ing文件,系统找不到指定路径问题
- 关于MySql在调试过程中出现Driver not loaded Driver not loaded的问题的解决办法
- 关于“打开项目**时发生问题,尝试退出并重新启动应用程序。如果问题仍然存在,则可能是由于正在使用不支持的项目版本,或者项目文件可能损坏”的问题的解决办法。
- 关于scanf与scanf_s的区别,以及用scanf编译出错并且提示找不到可执行文件.exe的解决办法。
- 关于eclipse中android在创建之后R.java文件出现问题的解决办法
- 关于修复VS2008提示加载安装组件出现问题和点击VS的设计窗口出现一个WINDOW installer的提示的问题的解决办法
- 我把一个VC6的工程转换为VS2008的工程后,编译总是出现找不到而且不能升级vc90.pdb文件的问题,error C2471--解决办法
- 关于IPad,Iphone“无法加入网络”的可能出现的问题解决办法
- 解决VS调试提示“无法启动程序,'...exe'.系统找不到指定文件。”的问题
- 运行VS2013编译成功后出现:无法启动程序“.exe” 系统找不到指定文件的问题的解决方法
- 关于IDEA找不到classpath中package内的xml文件问题和解决办法
- 关于VS编译时出现无法打开libcmrt.lib,libc.lib等系统常见库文件的解决办法