除非安装Visual Studio 2008,为什么我的程序不能运行?

时间:2008-12-08 09:39:29

标签: c++ visual-studio-2008 redistributable

我写过一款使用GLUT,OpenGL和FMOD的游戏。问题是二进制文件不会运行,除非在计算机上安装了Visual Studio 2008。

为什么会这样?

7 个答案:

答案 0 :(得分:11)

您很可能正在使用C / C ++运行时的DLL版本进行链接。转到项目属性 - > C ++ - >代码生成,并将运行时库设置为是“DLL”类型之一。

或者,您可以链接到DLL运行时,但是您必须使用您的应用程序重新分发运行时。

MSDN提供了有关C ++应用程序部署各个方面的更多信息:http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx

此外,Dependency Walker (depends.exe)将显示您的可执行文件所依赖的库。它还附带了一些Visual Studio版本。

答案 1 :(得分:5)

你的意思是为什么需要Microsoft Visual C++ 2008 Redistributable Package (x86)

  

此包安装运行时   C运行时(CRT)的组件,   标准C ++,ATL,MFC,OpenMP和   MSDIA库。对于图书馆来说   支持并行部署模型   (CRT,SCL,ATL,MFC,OpenMP)他们是   安装到本机程序集中   缓存,也称为WinSxS文件夹   Windows操作系统的版本   支持并排组装。

因为默认情况下它们并未安装在所有Windows上,尤其是VS 2008之前发布的那些。

即使是

cout << "Hello, World" << endl;

您需要一个库,在本例中是标准C ++库。

答案 2 :(得分:3)

欢迎来到应用程序部署的精彩世界。

在您的可执行文件上运行依赖工具,它将告诉您还需要将哪些DLL与EXE一起复制。

答案 3 :(得分:3)

This program可以帮助您找到计算机上缺少哪些dll(如果有的话)

答案 4 :(得分:2)

默认情况下,Windows仅安装C运行时和C ++标准库dll的发行版本。安装Visual Studio还将安装调试版本。

确保您部署的版本完全在发布模式下构建。

答案 5 :(得分:1)

尝试在发布模式下进行编译,并确保在目标计算机上安装了所有必需的DLL。它对我有用。

答案 6 :(得分:0)

您是否依赖于调试库?