为什么vs不能用exe文件
‘壹’ 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方便实用,推荐使用。
‘贰’ VS的EXE文件在别的电脑用不了 求大神告诉我怎么解决
1.在其他电脑上装对应版本的vc运行库
2.更改你的工程文件,使用MT方式(使用静态链接库),重新编译连接生成exe文件
3.把需要的几个dll文件跟着exe文件一起拷贝。
4.还有可能你生成的是64位程序,但是其他电脑室32位的。
‘叁’ VS2013生成的exe文件双击后不能运行
肯定是少了什么东西,所以不能运行,你看看你项目里面有没有引用其他DLL库,如果引用了,是不是应该拷贝的与exe同目录呢?
‘肆’ 程序在vs开发环境下可以运行,直接点debug目录中的exe文件运行就没反应
debug下的可执行程序。1.如果不是静态连接,缺少vs环境下动态链接库等支持2.如果不包含数据库文件无法运行是很正常的。解决方法,在选项,编译时选择静态连接。将数据库文件拷进debug目录
‘伍’ 求助:用VS2010生成的exe文件为什么不能直接运行
用vs2010自带的打包工具打包即可。但也要对方电脑上有.net framework。如果没有,要额外把这个也打包进去。
‘陆’ vs2010出现无法打开.exe,那些重装都试过了,没用。怎么办啊
你的project是debug的,缺乏很多依赖文件,所以无法打开,你release后就可以打开了,
如果你是想用VS打开你的project,那就打开工程文件,具体后缀名忘了(太久没写了),位置在你创建Project时候project所在根目录
‘柒’ VS2010编译已经成功,但不生成exe文件是什么问题
所有Visual Studio编译的程序,只要你用到了C Runtime库的函数,比如printf等最基本的标准函数,就会链接MSVCRxx.dll,里面的xx是你编译的Visual Studio的版本号。现在的问题就是你用的VS2010,很多计算机上没有这个DLL,即使你编译成Release版本(Debug版本需要更多的库支持),依然会出现运行不了的情况。解决办法是你可以静态链接这些库,这样就不需要DLL支持,或者你让目标计算机安装Visual Studio 2010 Redistribute Package,这个包包含了VS2010编译出来的程序需要的库。
‘捌’ 求解:vs2010无法生成exe文件,无法编译运行C怎么办
我就遇到这样的情况了,如果你运行别的程序没问题,那就是程序本身的错误,程序的参数类型不匹配之类的问题都会引起不生成exe可执行文件
‘玖’ 为什么VS不能生成exe文件
vs2010编译出来的程序默认是debug模式是要用到系统以外的msvcr100d.ll,这个文件在没有装vs或vs运行库的电脑里一般没有,release模式默认要用到系统外的msvcr100.dll,这个文件也是一般电脑上没有,你最好把相应的dll放在同一个文件夹中传过去,以便正常运行。还有,如果你直接传exe文件,qq会把这个exe文件重命名成“**.exe.重命名文件”,也就是exe文件到对方那里成了".重命名"文件,结果对方电脑找不到相关联的程序,所以提示不知道用什么打开程序,你可以让他再重命名成exe文件,要么你把exe文件放在一个文件夹里面,然后把文件夹传过去,文件夹里面的exe文件是不会重命名的成“.重命名”文件的,只有直接传exe文件时才会被替换成重命名文件。
‘拾’ vs2010里F5可以运行程序,但是直接点击生成的exe文件不行。
生成的exe应用程序启动的工作路径与你控件的目录不同,使用相对路径去访问外部的文件,或单独生成dll后拷贝到应用程序的bin目录下