关于c ++:如何使用Visual Studio Express 2005创建完全静态链接的.exe?

关于c ++:如何使用Visual Studio Express 2005创建完全静态链接的.exe?

How do I make a fully statically linked .exe with Visual Studio Express 2005?

我当前首选的C ++环境是免费且功能强大的Microsoft Visual Studio 2005 Express版本。我不时将发布的.exe文件发送给其他人,并获得了令人满意的结果。但是最近我令人不安的发现是,令人愉悦的结果是基于我想要的更多运气。试图在旧的(2001年份,未认真更新)XP机上运行这些程序之一,但给我什么却只有一个讨厌的"系统无法运行x.exe"(或类似)消息。

一些谷歌搜索发现,使用此工具集,甚至指定静态链接也会导致简单的hello-world.exe实际上依赖于额外的.dll文件(msvcm80.dll等)。一个精心设计的版本计划系统(是否显示任何文件?)然后会在没有完全正确的.dll版本的情况下让.exe运行。我不需要或不需要这些东西,我只想要一个老式的自包含.exe,它只执行最低公分母Win32操作,并且可以在任何旧的win32 OS上运行。

有谁知道我现有的工具集是否有可能做我想做的事情?

谢谢。


对于C运行时,请转到项目设置,选择C / C ++,然后选择"代码生成"。将"运行时库"设置更改为"多线程",而不是"多线程dll"。

如果使用任何其他库,则可能需要告诉链接程序显式忽略动态链接的CRT。


我在Visual Studio 2010中的经验是,需要进行两项更改,以便不需要DLL。从项目属性页面(在"解决方案资源管理器"窗口中右键单击项目名称):

  • 在"配置属性->常规"下,将"使用MFC"字段更改为"在静态库中使用MFC"。

  • 在"配置属性-> C / C ++->代码生成"下,将"运行库"字段更改为"多线程(/ MT)"

  • 不知道为什么两者都需要。我用它删除了对glut32.dll的依赖。

    稍后添加:对配置进行这些更改时,应将它们更改为"所有配置" ---您可以在"属性"窗口顶部选择此项。如果仅对Debug配置进行更改,则不适用于Release配置,反之亦然。


    我也遇到过同样的依赖问题,我也知道您可以在相应名称的文件夹中包含VS 8.0 DLL(仅发布!不能调试!---并且您的程序也必须发布)。 .exe的父文件夹:

    如何:使用XCopy(MSDN)进行部署

    另请注意,如果您需要在同一静态链接的.exe中包含C ++和C代码,则一定可以保证事情不会发生,因为您将获得链接器冲突,而这些冲突只能通过忽略正确的libXXX.lib然后进行动态链接(DLL)来解决。 。

    最后,由于Windows 2000及更高版本安装了正确的DLL,因此使用其他工具集(VC ++ 6.0)可以"正常工作"。


    对于Jared的回答,拥有Windows 2000或更高版本不一定能解决当前问题。 Rob的响应确实有效,但是此修复可能会引入安全问题,因为Windows更新将无法修补如此构建的应用程序。

    在另一篇文章中,尼克·瓜雷拉(Nick Guerrera)建议将Visual C ++运行时可再发行组件与您的应用程序打包在一起,该应用程序安装迅速且独立于Visual Studio。


    推荐阅读

      4超值串行端口记录器的首选

      4超值串行端口记录器的首选,,今天,市场在两种内置录音机接口:一个是卖老式的并行端口,另一个是串口,符合未来发展趋势。老机升级用户端口可以

      如何创建宽带连接(图形)

      如何创建宽带连接(图形),,很多时候,由于计算机的使用不当,计算机网络连接遭到破坏。此时,我们需要自己创建宽带连接。下面我们将教你如何创建宽

      如何使用计算机加速引导盘

      如何使用计算机加速引导盘,,点评:随着磁盘读写速度的大大提高,U的作用越来越大,比如磁盘加载系统,用U盘维护系统等等。今天我给大家带来的是如

      如何使用笔记本wifi

      如何使用笔记本wifi,,无线上网笔记本分为两种,一个是连接无线局域网的无线网络卡的使用近(WLAN、WI-FI),一种是使用USB调制解调器实现3G无线网

      2700元G530电脑是廉价和稳定的装机首选

      2700元G530电脑是廉价和稳定的装机首选,,最近DIY的部件已经减少了,对于DIY安装来说肯定是个好消息,硬盘、内存、处理器都有较低的价格,所以目

      学生首选500元热攒机收集处理器

      学生首选500元热攒机收集处理器,,由于四芯掉进了千年的市场,CPU价格开始迷惑,用100元为一个区间测量CPU的性能,但现在差距已经达到几十元,甚至