VS2008的动、静态编译
来源:互联网 发布:新疆大学网络管理系统 编辑:程序博客网 时间:2024/05/31 13:14
(转自:http://blog.csdn.net/aliwy/article/details/3962303)
开始写了个HelloVS2008,在本机正常运行,但在我的虚拟机中就运行不了,
如图一:
意料之中,因为前久也或多或少看过一下VS2008的相关文章。
为何出现这种情况呢?
因为VS2008的动态链接库已经是MSVCR90.dll或MSVCR90D.dll了,
而我们系统中安装的一般是低版本的。
要避免这种情况也很简单,从网络中学习到:静态链接就可以了。
以Debug编译为例,默认是这样的(/MDd),如图二:
按F7编译,成功,体积30K,如图三:
我们用Stud_PE查一下,用到了MSVCR90D.dll,如图四:
在本机运行肯定是成功的,但在其他机子上就未必,就像图一那样。
下面我们修改成静态链接(/MTd),如图五:
按F7编译,成功,体积440K,如图六:
我们再用Stud_PE查一下,没有MSVCR90D.dll了,如图七:
放到其他机子上运行一下(我这里是虚拟机,纯净的),如图八:
Release也一样的,默认是这样的(/MD),如图九:
F7编译后用Stud_PE查一下,用到了MSVCR90.dll,如图十:
下面我们修改成静态链接(/MT),如图十一:
我们再用Stud_PE查一下,没有MSVCR90.dll了,如图十二:
就是这样。
开始写了个HelloVS2008,在本机正常运行,但在我的虚拟机中就运行不了,
如图一:
意料之中,因为前久也或多或少看过一下VS2008的相关文章。
为何出现这种情况呢?
因为VS2008的动态链接库已经是MSVCR90.dll或MSVCR90D.dll了,
而我们系统中安装的一般是低版本的。
要避免这种情况也很简单,从网络中学习到:静态链接就可以了。
以Debug编译为例,默认是这样的(/MDd),如图二:
按F7编译,成功,体积30K,如图三:
我们用Stud_PE查一下,用到了MSVCR90D.dll,如图四:
在本机运行肯定是成功的,但在其他机子上就未必,就像图一那样。
下面我们修改成静态链接(/MTd),如图五:
按F7编译,成功,体积440K,如图六:
我们再用Stud_PE查一下,没有MSVCR90D.dll了,如图七:
放到其他机子上运行一下(我这里是虚拟机,纯净的),如图八:
Release也一样的,默认是这样的(/MD),如图九:
F7编译后用Stud_PE查一下,用到了MSVCR90.dll,如图十:
下面我们修改成静态链接(/MT),如图十一:
我们再用Stud_PE查一下,没有MSVCR90.dll了,如图十二:
就是这样。
0 0
- VS2008的动、静态编译
- VS2008的动、静态编译
- VS2008的动、静态编译
- (转)VS2008的动、静态编译
- VS2008静态编译配置选项的位置
- VS2008静态编译
- vs2008静态编译选项
- 软硬链接-动静态编译
- 动、静态库编译顺序
- linux编译动静态库
- 编译过程、动静态库
- vs2008 编译 luaplus 静态库
- vs2008静态编译Qt4.8.6
- vs2008静态编译Qt4.8.6
- 使用Vs2005 VS2008编译真正的静态Qt程序
- 编译链接和动静态库
- 编译链接和动静态库
- apache问题之动与静态编译
- 运行 CMD竟然转不了目录
- C# 如何让多行TextBox实现换行
- C# 如何让多行TextBox实现换行
- 关于cmd输入参数路径中存在空格问…
- 关于cmd输入参数路径中存在空格问…
- VS2008的动、静态编译
- VS2008的动、静态编译
- opencv静态编译
- opencv静态编译
- 如何在一个完全没有安装vs2008和op…
- 如何在一个完全没有安装vs2008和op…
- C# 中使用OPenCV(Emgu)心得
- C# 中使用OPenCV(Emgu)心得
- opencv 任意角度旋转图像