visual studio编写的exe程序不能在没装vs的电脑上运行,怎么办啊?

我编写了个程序,想给我朋友看,结果发过去以后,他说不能运行,还说什么配置环境的问题,tc编写的怎么就没有这么多毛病呢?这该怎么办啊?各位高手,难道vs就这么烦么?... 我编写了个程序 ,想给我朋友看,结果发过去以后,他说不能运行,还说什么配置环境的问题,tc编写的怎么就没有这么多毛病呢?这该怎么办啊?各位高手,难道vs就这么烦么? 展开
 我来答
daiea123
推荐于2018-03-14 · TA获得超过652个赞
知道小有建树答主
回答量:730
采纳率:0%
帮助的人:869万
展开全部
其实有很多的解决办法呀,如下:(一般你看是具体什么提示然后,使用相应的提示到G.cn或百度找答案即可.....),下面的方法可参考使用...
1).在C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86 \Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

其他release版,MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

2).修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不 再需要VC的dll了。

3). 工程-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
这样生成的exe文件应该就可以在其他机器上跑了。

4).在vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装

5).修改项目属性的编译开关
工程-->属性-->配置属性-->C/C++-->代码生成-->运行时库 修改为Multi-threaded(/MT)

修改了Runtime类型以后,需要将MFC的编译类型也改成静态库
工程-->属性-->配置属性-->常规-->MFC的使用 修改为:在静态库中使用MFC;

一部分情况下在这步就能解决问题,另外一部分情况会遇见如下情况,编译器报错:储如:"再次定义"
解决方法如下:
工程-->属性-->配置属性-->链接器-->输入-->附加依赖项 中加入相应的*.lib
(如:加入nafxcw.lib,libcpmt.lib )这一般根据你程序所报的错进行修改;
工程-->属性-->配置属性-->链接器-->输入-->特定的库
(如:加入nafxcw.lib,libcpmt.lib )

这样链接程序就不会先按照默认顺序来连接这两个库文件,而是在最后在加入对他们的引用.

下面是一张可能发生冲突的列表 若要使用此运行时库 请忽略这些库

单线程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多线程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的调试多线程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
heroyr
2009-07-26 · 超过13用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:23.9万
展开全部
他机器上没有那个库文件
把库文件打包给他
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式