为什么用vs2005平台运行C++的时候会显示 系统找不到指定路径?

转载 2011年07月20日 09:12:19
 
原文链接:http://zhidao.baidu.com/question/218427182.html
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”),避免了嵌入清单文件可能失败的问题。在程序运行时,会用到该清单文件。显然,这种方式使可执行程序产生了更多的外部依赖,不推荐。

    另外,还有一个不能称为方法的土办法:每次Build前手动删除*.ilk文件(增量链接文件)(当然可以在项目属性中写入删除命令,使其自动执行),不推荐该土办法。
    最后,总结一下:
    1. 此问题只在特定条件下才会出现:在FAT32文件系统中编译、默认设置(增量模式、不启用FAT32解决方案、嵌入清单文件)、非第一次生成可执行文件文件(即在增量连接、更新清单文件时)。
    2. 解决方案1和4.1方便实用,推荐使用。

VS 无法启动程序(系统找不到指定路径)的解决方法

相信很多开发者都用过vs编写代码,可能有的初级学者遇到过这样的一个问题: 每次按F5或者点击 本地windows调试器 按钮的时候,都会报这个错,主要原因是在生成新的解决方案的时候点击了 不...
  • fantasydreams
  • fantasydreams
  • 2015年03月25日 00:47
  • 12189

C/C++ Windows API——获取系统指定目录

函数 头文件 作用 GetModuleFileName 获取当前进程已加载模块的文件的完整路径 GetCurrentDirectory 获取当前目录 GetSys...
  • chy555chy
  • chy555chy
  • 2016年10月13日 00:39
  • 4133

VS2010 调试时 提示 无法启动程序 系统找不到指定的文件

环境:windows 7 工具:MFC C++  ; VS 2010 条件:安装360毒霸。 情况描述:  ①运行不调试,程序正常。调试运行F5 软件报错:“无法启动程序,系统找不到指定的...
  • i_likechard
  • i_likechard
  • 2016年09月01日 15:01
  • 1260

vs2010 无法启动程序 系统找不到指定的文件

我经常遇到这样的问题,一直都迷糊$(OutDir)$(TargetName)$(TargetExt)、$(SolutionDir)$(Configuration)。闹不明白。 很多时候,我们会将一些...
  • cai_huan_123
  • cai_huan_123
  • 2014年06月18日 15:34
  • 6469

vs2010调试C++程序时提示 无法启动文件“....exe”系统找不到指定文件

情况:是c++程序, 同事用的是WIN7系统, 自己用的是XP系统 今天自己机子上VS2010能运行的程序, 发给同事,他也是用VS2010打开,不知道为什么就提示 "无法启动文件“....exe”...
  • lgz_1534771477
  • lgz_1534771477
  • 2015年04月18日 14:08
  • 7292

vs2005 无法启动程序 系统找不到指定的文件---解决方案

VS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打...
  • zhuifengwy
  • zhuifengwy
  • 2015年04月22日 17:15
  • 1275

Visual C++ 2008 无法启动程序,系统找不到指定的文件

用Visual C++ 2008 新建C++项目后,运行时报错, 代码如下:只是简单的打印helloworld HelloWorld.cpp#include using namespace st...
  • w690333243
  • w690333243
  • 2017年11月12日 15:31
  • 144

关于ST-emWIN 仿真文件在VS2017上运行出错或者提示找不到指定文件的问题。

1、打开工程文件,选择 .sln格式文件 2、打开工程后,如果你VS2017没有安装相关工具,VS2017会提醒你安装相关工具或者升级,或者提醒重定向项目,直接点击确认即可。 ...
  • u011863378
  • u011863378
  • 2017年11月30日 19:20
  • 204

VS,无法启动指定的程序,系统找不到指定的文件

转自:http://hi.baidu.com/angcyo/item/f59d7644a3790f2510ee1ea2 一般出现这种情况,大多数都是从网上down下来的源码之类的. 问题截图: ...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2013年12月05日 16:52
  • 9344

解决VS调试提示“无法启动程序,'...exe'.系统找不到指定文件。”的问题

这篇文章原来是我写在新浪博客上的,现贴过来,但图片就没办法了,只好给出链接,看全文请转至这里 http://control.blog.sina.com.cn/admin/article/articl...
  • LYJ_viviani
  • LYJ_viviani
  • 2016年07月11日 11:20
  • 12202
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么用vs2005平台运行C++的时候会显示 系统找不到指定路径?
举报原因:
原因补充:

(最多只允许输入30个字)