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

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

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

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

为什么会这样呢?

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

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

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

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

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

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

 然后重新编译即可。

对于VS来说:

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

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

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

 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119518.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号