• VS2008的动、静态编译(转)


    前几天申请到微软学生中心账号,并成功通过验证,
    下载了传说中的“正版”VS2008专业版,并申请了正版KEY!
    结果安装后,才发现还是90天试用版,申请到的正版KEY也无效!!
    没办法,费了好大劲安装,占了好几G的空间,还是用吧。
    到网上找了个KEY,没想到反而成功升级到正式版,后又安装了SP1。
    一直是用VC6.0,突然升级到高版本,很多不适应,慢慢摸索了。
    开始写了个HelloVS2008,在本机正常运行,但在我的虚拟机中就运行不了,
    如图一:
    diyblPic
    意料之中,因为前久也或多或少看过一下VS2008的相关文章。
    为何出现这种情况呢?
    因为VS2008的动态链接库已经是MSVCR90.dll或MSVCR90D.dll了,
    而我们系统中安装的一般是低版本的。
    要避免这种情况也很简单,从网络中学习到:静态链接就可以了。
    以Debug编译为例,默认是这样的(/MDd),如图二:
    diyblPic
    按F7编译,成功,体积30K,如图三:
    diyblPic
    我们用Stud_PE查一下,用到了MSVCR90D.dll,如图四:
    diyblPic
    在本机运行肯定是成功的,但在其他机子上就未必,就像图一那样。
    下面我们修改成静态链接(/MTd),如图五:
    diyblPic
    按F7编译,成功,体积440K,如图六:
    diyblPic
    我们再用Stud_PE查一下,没有MSVCR90D.dll了,如图七:
    diyblPic
    放到其他机子上运行一下(我这里是虚拟机,纯净的),如图八:
    diyblPic
    Release也一样的,默认是这样的(/MD),如图九:
    diyblPic
    F7编译后用Stud_PE查一下,用到了MSVCR90.dll,如图十:
    diyblPic
    下面我们修改成静态链接(/MT),如图十一:
    diyblPic
    我们再用Stud_PE查一下,没有MSVCR90.dll了,如图十二:
    diyblPic
    就是这样。

    【后记】
    今天上班事情少,就我一个人在办公室,所以趁空整了这篇“图文并茂”的笔记,自娱自乐而已,让看官见笑了。

  • 相关阅读:
    springmvc配置全局日期转换器
    JSON反序列化没有真正数组,本质类型都是List<Object>
    优化.Net MVC 访问页面慢
    Log4j2过滤日志级别配置
    Springboot重新加载Bean
    CTFWeb:Oracle SQL 注入
    CTFWeb:SqlServer SQL 注入
    操作系统:文件系统
    操作系统:多级反馈队列和比例份额
    Android:利用系统服务设置系统音量
  • 原文地址:https://www.cnblogs.com/myitm/p/1845240.html
Copyright © 2020-2023  润新知