VS2010 c++编译的时候总是出现找不到exe文件、这是个什么情况

如题所述

VS在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(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方便实用,推荐使用。追问

你的答案很详细。但是我都试了,。不行
后来改为release版本就对了,先前是deburg的模式。。
关于这个具体我也不知道怎么回事。。。
好在程序运行了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-11
我觉得这是不怎么可能的,编译怎么会与exe文件有关呢?exe文件是在运行之后出现的可执行文件。如果出现这种情况的话,可能是没有把之前打开的exe文件关闭,或者你重新新建一个看看。
第2个回答  2013-09-11
看看你编译产生的debug或relax文件甲中有没有exe文件。
第3个回答  2013-09-11
在你想运行的时候吗
第4个回答  2013-09-11
重新建一个工程看看能解决吗。

VS2010 c++编译的时候总是出现找不到exe文件、这是个什么情况
(1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。(2)不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入...

VS2010编译C++系统找不到指定文件 怎么办
那是因为编译链接完没有生成exe文件,两种可能,一种是你工程建的不正确,第二种就是你IDE有问题

...程序运行先是项目过期,点确定找不到exe文件是怎么回事啊?请问具体的...
找不到可执行文件是因为你的程序里面有问题,连编译都没有通过,没有生成完整的cpp,就更别说可运行的exe了,至于项目过期,这个木有看过,建议你建立工程前先选对程序类型,想写c++就选对win32控制台应用程序吧。不要急于求成,先把高层的东西注释掉,设置标志看程序能正常执行的位置,再逐渐深化吧 ...

C++运行时无法启动程序,找不到指定文件
1、用 VS 打开工程,点击菜单 项目 - 属性。2、在打开的页面中点击 配置属性 - C\/C++ - 代码生成。3、在展开的页面中选中 运行库,再点击右边的组合框。4、选择多线程(\/MT)项,然后单击确定。5、回到原工程页面,点击菜单下方的 Debug 下拉框,选择 Release 项。6、然后点击菜单 生成 - 重新...

visual studio C++2010 系统找不到指定文件”
你估计是在用VS2010加载调试以前的VC6.0下的程序是吧。那么你生成的exe是存在的,不过是在工程的bin目录下。但是在VS2010中是执行的时候是要到Debug中找的,所以你需要修改项目的输出路径,即“项目”-“属性”-“链接器”-“常规”-“输出文件”,将“bin”修改为“Debug”。

VS2010 调试的时候说 无法启动程序“***.exe”系统找不到指定的文件...
在VS2005中利用已有文件创建新项目,开始的时候创建的是win32程序,后来发现已有文件中用的是main()函数,结果一编译,出现错误:MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号_WinMain@16,该符号在函数___tmainCRTStartup 中被引用。F:\\Graphics\\C++primer source code\\opengl-red...

VS2010运行时无法启动程序系统找不到指定文件怎么回事
exe : fatal error LNK1120: 1 个无法解析的外部命令。原因就在于,这个文件本身是控制台形式的,而创建的项目是win32的。删除...\\Microsoft Visual Studio 2010\\VC\\bin下面的那个cvtres.exe 。进入360毒霸,点击设置。在开发者模式中设置,将程序exe生成目录添加到信任编译输出路径中。即可。

VS2010 创建c++win32程序生成的时候总是有错误,代码没问题,运行时找不...
你用的是vc2010。这是编译器配置问题,很简单的。按下面方法设定,重编即可:右键工程,菜单——属性——配置属性——常规——字符集,改为“未设置”。确定就行。

vs2010中无法直接启动执行程序,提示找不到debug中的XXX.exe文件。必须...
这个就是VS2010的坏处,编写C语言老是要新建一个工程!具体步骤如下 1.文件->新建->项目->win32->win32控制台应用程序 2.在下面的文件名的框子里,随便写个名字,点确定 3.下一步 4.空项目前面的勾要勾上,然后再点完成 5.源文件 右击 ->新建项->代码->c++文件(.cpp),点击一下之后,...

vs2010无法启动程序 系统找不到指定文件 求大神解决
这个问题遇到过,应该是安装的问题或者是程序是从别人那里拷贝过来的,程序的安装目录不同,少哪个文件,在那个目录下,找到这个文件,新建路径,把文件放进去就可以了……

相似回答