如何生成不依赖VC库(包含MFC库)的静态exe(包含dll,lib),就是生成随时随地运行仅有一个exe的方法,纯净EXE

你是不是有个这样一种经历:明明我的计算机能跑的软件,放到别人的计算机就不能运行了(这时可能你需要复制若干依赖的DLL,用Depends.exe可以看依赖项哦)。以下的文章专门介绍如何彻底避免:

1、从静态库lib说起,前提条件是此lib没有依赖其他非静态lib,要生成静态链接的静态库(绕不绕?),几个地方配置下,因为VS环境默认都是动态链接的。直接上图

常规页: 

C++\代码生成页:

OK,编译下即可生成纯天然无残留的静态链接的静态lib库!

2、说下如何生成静态链接的动态DLL库和exe应用程序:

原理同上,参考文章后面部分的,提取下精华:

在 C 语言的标准程式库中:

静态连结

  • LIBCMTD.lib(除错版本)
  • LIBCMT.lib(这个就是我们需要的)

动态连结

  • MSVCRTD.lib(除错版本)
  • MSVCRT.lib

在 C++ 语言程式库中:

静态连结

  • LIBCPMTD.lib(除错版本)
  • LIBCPMT.lib(这个就是我们需要的)

动态连结

  • MSVCPRTD.lib(除错版本):执行档相依于 MSVCP90D.dll
  • MSVCPRT.lib:执行档相依于 MSVCP90.dll

到了这里,也许小朋友,你是不是有很多的❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓

为什么我的项目中,没有附加这些依赖项呢?那是因为VS已经帮你做了,就像刚结婚就当爸爸一样的原理。

回到正题:如果我要生成不依赖任何DLL的exe,那么我们要做的是,保证依赖的LIB也必须是静态链接的。然后按照前面2张图说的设置就OK了,快来试试吧,简单清爽纯天然的感觉是不是很爽!

我的QQ35744025,如果你垂涎我的美色和才华,请随时骚扰我吧,暗号:美女

支持商务合作哦!

参考文章:https://www.cnblogs.com/minggoddess/archive/2010/12/29/1921077.html

猜你喜欢

转载自blog.csdn.net/xjb2006/article/details/107353009