VS2019 为什么我的C++程序不能在别人电脑运行
将一个很简单的程序编译得到一个*.exe文件。
在本地自然可以顺便运行,有时候你刚刚做完一个这样的练习,迫不及待地要向朋友炫耀一下。一脸淫笑的你守在QQ旁正期待着赞扬的词汇,一边又脑补一下朋友的崇拜,可时间似乎凝固了,仿佛过了一个世纪后——“你发的这东西我怎么打不开啊?”
为什么会这样呢?
原因是VS默认为动态编译。
在之前的教程里我们学了静态编译与动态编译的区别,我再把他搬过来:
静态编译在程序编译时dll会被连接到目标代码中,程序运行时将不再需要该静态库。
动态编译在程序编译时dll并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
我们只需设置为静态编译即可,让dll写进exe内,没有外部库也可以运行。
然后重新编译即可。
对于VS来说:
静态编译/MT,/MTD 是指使用libc和msvc相关的静态库(lib)。
动态编译,/MD,/MDd是指用相应的DLL版本编译。
值得注意的是,使用静态编译会让程序变大。
本文作者:兰purvis
本文链接:https://www.cnblogs.com/purvis/p/15138274.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步