2 null oliver Null_Oliver 于 2015.06.11 22:10 提问

vs2015生成的exe 在别的电脑上了用不了

1.

我在我的电脑上装了visual studio 2015社区版,然后我用它写了一个程序。在自己的电脑上,编译成功,生成debug版的exe成功。但是我发现,只要不在有vs2015的电脑上,就运行不了这个exe,请问为什么?

2.

我试了三台电脑(2个装有vs2013,1个装有vs2010,结果三个电脑都运行不了那个exe,都是提示找不到msvcp140.dll),请问什么是运行库?什么是动态链接库什么是静态链接库他们和运行库有什么关系?

3.

然后我在自己的visual studio 2015里,找到了那个dll,然后我考到我的U盘里,然后按照网上的方法装在那个有visual studio 2010 的指定目录里面然后运行了win+r 然后加一个什么指令(总之就是网上说的修复这个问题的方法),结果错误提示找不到路径之类的。但是再一次运行那个exe的时候,就不会在弹出那个没有dll的错误了,却显示的是无法打开文件 然后给了一个000000000c什么的指令还是内存地址,总之就还是打不开。 这是什么情况?

4.然后我又看网上的方法,说可以使用静态链接。我就找到了vs2015里设置静态链接的地方,选择了MT项,结果却无法生成文件了提示:1>LINK : fatal error LNK1104: 无法打开文件“libcpmtd.lib”请问这又是什么情况?

5.那个平台工具集是什么东西?v140 v130什么的,是不是想要让低版本的电脑用就要用更低的平台工具集?

6.我到底应该怎么做才能,让我在vs2015上生成的exe在普通的电脑上运行????还有上面说的这些知识,有哪方面的书籍可以入门吗?我觉得,解决这些问题太吃力了。大学入门学的编程知识根本没有涉及到过这些东西。

谢谢!

13个回答

caozhy
caozhy   Ds   Rxr 2015.06.11 22:16

2015目前还在测试阶段,并且最新的RC版也不是一个Go live版本,所以你应该避免在生产环境中使用它。
当VS2015正式发布以后,微软会提供供你在目标计算机运行所需的“可再分发组件包”,届时你只需要分发它们就可以了。

Null_Oliver
Null_Oliver 你好,按照你说的我在 只有vs2010 的机子里 装了 2013 和 2015 的可再分发组件包 。 结果还是提示无 指定的dll 然后我在自己的电脑里把电脑拷过去,然后就又显示无法打开程序。请问这会不会是 .netframework版本低的问题?
2 年多之前 回复
caozhy
caozhy 回复Null_Oliver: 首先,你的程序本身要正确,其次,你需要部署VC++ 2013可再分发组件包。
2 年多之前 回复
Null_Oliver
Null_Oliver 但是为什么我在2013上生成的exe 在只有2010的电脑上也用不了呢?
2 年多之前 回复
tongyi55555
tongyi55555   2015.06.11 22:52

对你的问题不能提供什么有效的帮助,对VS不熟悉。不过很钦佩楼主写的,确实下了很大的功夫去思考去搜索,不要气馁,都是这么过来的。

iFr0zen
iFr0zen   2015.06.11 22:54

VS2015里面的.NetFramework是高版本的吧,别的电脑可能没有装

Carry_Dominator
Carry_Dominator   2015.06.11 22:59

更改一下sln版本号!

Null_Oliver
Null_Oliver 你好我说的是exe文件运行不了,我没有在别的电脑上运行sln文件
2 年多之前 回复
liqiongfan
liqiongfan   2015.06.11 23:09

因为你是用的VS2015版本,根据提示是说msvcp140.dll找不到,所以你要将你的系统目录下的、或者VS2015安装目录下的msvcp140.dll与exe文件放到一起打包就行了。或者要别人的电脑安装Visual C++2015 运行库也是可以的

Null_Oliver
Null_Oliver 回复Null_Oliver: 0x0000000007b
2 年多之前 回复
Null_Oliver
Null_Oliver 回复Null_Oliver: 0x0000000007b
2 年多之前 回复
Null_Oliver
Null_Oliver 你好 我按照你说的做的,结果就和把dll 放到system32 里面一样 打开exe 的时候会弹出错误窗口 显示 程序无法正常启动 0xccccccccc7b
2 年多之前 回复
huangshanchun
huangshanchun   2015.06.12 07:51

首先要将程序发布成release 版本而非debug版本,第二运行时候可能需要一些库,找到,放到程序的的同一目录下。

u012377333
u012377333   Rxr 2015.06.12 08:49

是不是相应的类库没有打包或者是没有安装呢

sjzquchen
sjzquchen   2015.06.12 09:08

通上 就是 .NetFramework 的原因。

dowhile1
dowhile1   2015.06.12 09:47

没用过2015, 不过应该是共通的

方法一: 安装运行库, 不过楼上有朋友说未发布
方法二: 静态链接, 这应该是可行的, 你可能哪里没设置正确

实现不行就别用2015了 看你也是刚入门 没必要追求最新版本

我所知的大部分人用的是 08或10

Null_Oliver
Null_Oliver 你好,使用静态链接的时候他说无法打开某个指定的.lib 我找到了那个lib我该怎么设置呢? 还有就是 10版本好像不能有效的支持c++11 那怎么办?
2 年多之前 回复
jianjian1992
jianjian1992   2015.06.12 11:09

我也碰到过这个问题,当时用的是vs2010,解决办法是
如果要在没有visual studio 2010的机器上运行需要安装Microsoft Visual C++ 2010 Redistributable Package (x64)

地址是:http://www.microsoft.com/en-us/download/details.aspx?id=14632
vs2015不知道是不是和这个一样解决的。

共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片