vs2015上生成的exe无法 再 别的电脑上使用

Null_Oliver 2015-06-11 10:19:52
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在普通的电脑上运行????还有上面说的这些知识,有哪方面的书籍可以入门吗?我觉得,解决这些问题太吃力了。大学入门学的编程知识根本没有涉及到过这些东西。



谢谢!
...全文
44797 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
MoshangYanYu 2016-06-30
  • 打赏
  • 举报
回复
引用 14 楼 qq_35360395 的回复:
[quote=引用 9 楼 zhaowech 的回复:] 这是很正常的现象,你用vs2015编译的程序,会使用到对应的运行库,通常是msvcr100.dll、msvcp100.dll等类似名字的文件,其中100代表的是vc编译器的版本,80表示vs2005,90表示vs2008,100表示vs2010,120表示vs2013。 解决方法如下: 1.去微软官方下载vs2015 redist安装包,让目标电脑安装即可http://www.microsoft.com/en-us/download/details.aspx?id=48145 2.到vs2015的安装目录下,搜索redist,将里面的dll拷贝到目表电脑的system32目录下,这里以vs2010的redist文件夹作为示例:C:\Program Files\Microsoft Visual Studio 10.0\VC\redist,里面的x64表示是64位电脑,x86表示是32位电脑,其他两个不用管,你目前不需要考虑
目标电脑是学校机房 学校机房用的是vs2010 我的是vs2015 有什么办法能在我的电脑上就把我的工程改成能在vs2010上运行 谢谢了!只是改个版本号就可以吗?[/quote] 改起来比较麻烦。。。涉及到版本号、.NET Framework版本、系统位数等。。。所以还是建议在开发的时候就考虑好
qq_35360395 2016-06-30
  • 打赏
  • 举报
回复
引用 9 楼 zhaowech 的回复:
这是很正常的现象,你用vs2015编译的程序,会使用到对应的运行库,通常是msvcr100.dll、msvcp100.dll等类似名字的文件,其中100代表的是vc编译器的版本,80表示vs2005,90表示vs2008,100表示vs2010,120表示vs2013。 解决方法如下: 1.去微软官方下载vs2015 redist安装包,让目标电脑安装即可http://www.microsoft.com/en-us/download/details.aspx?id=48145 2.到vs2015的安装目录下,搜索redist,将里面的dll拷贝到目表电脑的system32目录下,这里以vs2010的redist文件夹作为示例:C:\Program Files\Microsoft Visual Studio 10.0\VC\redist,里面的x64表示是64位电脑,x86表示是32位电脑,其他两个不用管,你目前不需要考虑
目标电脑是学校机房 学校机房用的是vs2010 我的是vs2015 有什么办法能在我的电脑上就把我的工程改成能在vs2010上运行 谢谢了!只是改个版本号就可以吗?
向日葵向阳生 2015-10-24
  • 打赏
  • 举报
回复
.提示找不到msvcp140.dll是因为你是在debug模式下生成的缘故,如果需要在其他机器可以运行,4个步骤,1,release模式下生成exe.2,考虑运行环境是x86还是x64,3,如果考虑向下兼容到xp上可以运行,需要安装sdk,vs的卸载程序选择修复-通用windows开发工具,这个比较大4G,而且是捆绑安装不能想要什么安装什么....4,在要编译的项目选择属性-configuration properties-general-platform toolset 选择visual studio 2015 windows xp(v140_xp) 如果第二步是x86,你的程序就是全兼容了
赵4老师 2015-08-04
  • 打赏
  • 举报
回复
根本上还是要学会使用depends.exe查看exe依赖的dll。
孤影品茗 2015-08-04
  • 打赏
  • 举报
回复
debug版本的运行库的名字一般是普通运行库加多一个后缀d,例如msvcr140.dll对应的debug版本是msvcr140d.dll,你可以去system32下或者WINDOWS/Winsxs目录下搜索msvcr140d,应该就能找到对应的dll
孤影品茗 2015-08-04
  • 打赏
  • 举报
回复
引用 9 楼 zhaowech 的回复:
这是很正常的现象,你用vs2015编译的程序,会使用到对应的运行库,通常是msvcr100.dll、msvcp100.dll等类似名字的文件,其中100代表的是vc编译器的版本,80表示vs2005,90表示vs2008,100表示vs2010,120表示vs2013。 解决方法如下: 方法1:去微软官方下载vs2015 redist安装包,让目标电脑安装即可http://www.microsoft.com/en-us/download/details.aspx?id=48145 方法2:到vs2015的安装目录下,搜索redist,将里面的dll拷贝到目表电脑的system32目录下,这里以vs2010的redist文件夹作为示例:C:\Program Files\Microsoft Visual Studio 10.0\VC\redist,里面的x64表示是64位电脑,x86表示是32位电脑,其他两个不用管,你目前不需要考虑
方法3:使用静态链接,这个到工程属性里面更改 对了,你必须生成release版本,如果是debug版本要在其他电脑上运行不是不可能,但是这样一来文件会很多,一时半会儿很难跟你说,操作方法类似上面的方法2。 因为微软的redist发行包,默认不会包含debug版本的运行库,如果用到了mfc就依赖更多的文件了
孤影品茗 2015-08-04
  • 打赏
  • 举报
回复
这是很正常的现象,你用vs2015编译的程序,会使用到对应的运行库,通常是msvcr100.dll、msvcp100.dll等类似名字的文件,其中100代表的是vc编译器的版本,80表示vs2005,90表示vs2008,100表示vs2010,120表示vs2013。 解决方法如下: 1.去微软官方下载vs2015 redist安装包,让目标电脑安装即可http://www.microsoft.com/en-us/download/details.aspx?id=48145 2.到vs2015的安装目录下,搜索redist,将里面的dll拷贝到目表电脑的system32目录下,这里以vs2010的redist文件夹作为示例:C:\Program Files\Microsoft Visual Studio 10.0\VC\redist,里面的x64表示是64位电脑,x86表示是32位电脑,其他两个不用管,你目前不需要考虑
heke_ken 2015-08-04
  • 打赏
  • 举报
回复
同意7楼的说法,用depends查看目标机器缺少哪些运行的dll
赵4老师 2015-07-31
  • 打赏
  • 举报
回复
安装VS2015可再发行包。 用depends.exe查看exe依赖的dll
cnkker 2015-07-30
  • 打赏
  • 举报
回复
runtime要一致。。和你安装的vs有毛关系!!
xiaohuh421 2015-06-12
  • 打赏
  • 举报
回复
差什么dll, 全部打包在一起. 或者使用静态库方式,
iyomumx 2015-06-12
  • 打赏
  • 举报
回复
需要目标机器安装VC++2015可再发行组件包,然而VS2015还没正式发布所以应该是没有 需要发布程序先在工具栏的某个显示着“Debug”的ComboBox里切换到Release配置 在配置选项里选/MT以静态链接运行库
_sunshine 2015-06-12
  • 打赏
  • 举报
回复
静态编译试试看
懒懒的吉他手 2015-06-12
  • 打赏
  • 举报
回复
谢邀 如果只是单纯开发windows程序,可以考虑用低版本的VS,比如2008或者2010,资料比较多 必须要用DLL,因为你的程序是动态加载,当然要用对应的动态链接库,别的VS版本低肯定是不带高版本的链接库的
youzi05 2015-06-12
  • 打赏
  • 举报
回复
直接把那个dll文件和编译生成的可执行文件放到一个目录下, 然后应该就可以执行了吧

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧