VS2019 为什么我的C++程序不能在别人电脑运行

将一个很简单的程序编译得到一个*.exe文件。

在本地自然可以顺便运行,有时候你刚刚做完一个这样的练习,迫不及待地要向朋友炫耀一下。一脸淫笑的你守在QQ旁正期待着赞扬的词汇,一边又脑补一下朋友的崇拜,可时间似乎凝固了,仿佛过了一个世纪后——“你发的这东西我怎么打不开啊?”

为什么会这样呢?

原因是VS默认为动态编译。

在之前的教程里我们学了静态编译与动态编译的区别,我再把他搬过来:

静态编译在程序编译时dll会被连接到目标代码中,程序运行时将不再需要该静态库。

动态编译在程序编译时dll并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。

我们只需设置为静态编译即可,让dll写进exe内,没有外部库也可以运行。

 然后重新编译即可。

对于VS来说:

静态编译/MT,/MTD 是指使用libc和msvc相关的静态库(lib)。

动态编译,/MD,/MDd是指用相应的DLL版本编译。

值得注意的是,使用静态编译会让程序变大。

 

参考:https://blog.csdn.net/nullccc/article/details/81015012

posted @ 2020-08-25 09:47  jingsupo  阅读(128)  评论(0编辑  收藏
我要啦免费统计