• [转]VS2015编译的程序在其他机器上缺少msvcp120.dll


    http://www.lai18.com/content/1159618.html

    1、

    今天分享一个自己在开发过程中遇到的困难。

    用VS2015开发了一个windows客户端(win32项目),在自己的机器上运行很流畅。当你得意的把releas版本进行打包,并进行发布后,问题来了?很多人反馈运行时缺少msvcp140.dll,甚至有人在XP系统上完全不能用。

    那么首先看看是如何解决的: 

    在工程上打开属性,选择C/C++,选择代码生成,把运行库改为“多线程(/MT)”。重新编译即可。 



    但是对于兼容XP的问题呢?同样是在工程的属性里,选择常规,平台工具集中选择“Visual Studio 2015-Windows XP(v140_xp)” 



    你以为这样就大功告成了吗,大错特错。上面的方法是解决缺少msvcp140.dll的方法,但是我遇到的问题是缺少msvcp120.dll。

    到底这是个什么鬼? 

    其实说白了就是C++的动态链接问题。 

    msvcp120.dll是vs2010编译的程序默认的库文件。msvcp120.dll可以解决某些大型游戏、程序由于vs2010编译系统中缺失此dll的问题。vs2010编写的程序运行所需dll。 

    如果您的系统提示“找不到msvcp120.dll ”或“msvcp120.dll 缺失” 或者“msvcp120.dll 错误”的问题,下载本文件复制到*/Windows/SYSTEM32下,即可解决问题。

    那这么说msvcp140.dll就是vs2015对应的库文件了。

    这时候关键问题来了?我用的是vs2015,而且已经改为了多线程(/MT),但是为什么会显示缺少msvcp120.dll呢?

    哎,怪自己孤陋寡闻,被这个问题折磨了一天。

    这时候常规的做法是用depends来看一下.exe的依赖项。 

    看了很多遍都没发现问题。

    最后灵机一定,是不是使用的第三方库(别人的dll)出了问题呢?这里用到了一个gloox.dll,迅速用depends看下gloox.dll,果然存在对msvcp120.dll的依赖。

    怎么办呢?找gloox的源码吧,自己重新编译一下。

    但是在编译gloox的时候,出错了。。。。。。

    未完待续。。。。。。

    2、

    3、

  • 相关阅读:
    day44
    day38
    day37
    day36
    作业35
    day35
    作业34
    day34
    day33
    Windows API 第三篇
  • 原文地址:https://www.cnblogs.com/cppskill/p/6061574.html
Copyright © 2020-2023  润新知