不同版本的C ++库

时间:2008-09-17 20:38:36

标签: c++ windows windows-vista windows-xp

在vista上使用Visual Studio 2008编译一个简单的C ++项目后,一切都在原始vista机器和其他远程计算机上运行良好。但是,将其移动到XP框会导致错误消息:“应用程序无法启动,因为应用程序配置不正确”。

我需要做什么才能使我编译的EXE适用于XP和Vista?几个月前我遇到了同样的问题,只是摆弄了项目中的一些设置修复了它,但我不记得我改变了哪些。

5 个答案:

答案 0 :(得分:6)

您需要在目标计算机上安装Visual Studios 2008运行时:

  

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

或者,您也可以静态链接运行时,在项目属性窗口中转到:

  

c ++ - >代码生成 - >运行   库并选择“多线程   / MT“

答案 1 :(得分:1)

您需要将运行时可再发行文件安装到您尝试运行该应用程序的计算机上。

2008年的可再发行组件为here

2005年的可再发行组件为here

它们可以并排安装,以防您同时需要。

答案 2 :(得分:1)

您可能需要在应用程序中分发VC运行时。有很多种方法可以做到这一点。来自Microsoft Visual C ++团队的This article最好地解释了在使用Visual Studio 2005或2008时分发这些依赖项的不同方法。

正如文章中所述,尽管您可以下载Redistributable安装程序包并在客户端计算机上启动它,但这几乎总是不是最佳选择。如果您只是想通过Windows安装程序或App-Local副本分发压缩文件夹,通常有更好的方法来包含所需的DLL,例如包括合并模块。

另一种选择是静态链接运行时库,而不是将它们与您的应用程序一起分发。此选项仅适用于不加载其他DLL的独立EXE。您也无法使用其他应用程序加载的DLL来执行此操作。

答案 3 :(得分:0)

最简单的是静态链接到运行时。

c ++ - >代码生成 - >运行时库并选择“多线程/ MT”

然而,这确实使您的可执行文件大了几百KB。如果要安装大量小程序,这可能会成为一个问题,因为每个程序都有自己的运行时副本。答案是创建一个安装程序。

新项目 - > “设置和部署” - > “安装项目”

将应用程序项目的输出(使用运行时的DLL版本定义)加载到安装程序项目中并构建它。将注意到对运行时DLL的依赖性,包含在安装程序包中,并且整齐且不显眼地安装在目标计算机上的正确位置。

答案 4 :(得分:0)

Visual Studio 2005实际上有两个

the original release

的那个

for SP1