我编写了一个使用 GLUT、OpenGL 和 FMOD 的游戏。问题是二进制文件不会运行,除非计算机上安装了 Visual Studio 2008。
为什么是这样?
我编写了一个使用 GLUT、OpenGL 和 FMOD 的游戏。问题是二进制文件不会运行,除非计算机上安装了 Visual Studio 2008。
为什么是这样?
您很可能正在链接 C/C++ 运行时的 DLL 版本。转到项目属性 -> C++ -> 代码生成,并将运行时库设置为不是“DLL”类型之一。
或者,您可以链接到 DLL 运行时,但是您必须使用您的应用程序重新分发运行时。
MSDN 提供了有关 C++ 应用程序部署各个方面的更多信息:http: //msdn.microsoft.com/en-us/library/zebw5zk9.aspx
此外,Dependency Walker (depends.exe)将显示您的可执行文件所依赖的库。它还附带了一些版本的 Visual Studio。
您的意思是为什么需要Microsoft Visual C++ 2008 Redistributable Package (x86)?
此软件包安装 C 运行时 (CRT)、标准 C++、ATL、MFC、OpenMP 和 MSDIA 库的运行时组件。对于支持并行部署模型(CRT、SCL、ATL、MFC、OpenMP)的库,它们被安装到支持并行程序集的 Windows 操作系统版本上的本机程序集缓存(也称为 WinSxS 文件夹)中.
因为它们并非默认安装在所有 Windows 上,尤其是在 VS 2008 之前发布的那些。
就算
cout << "Hello, World" << endl;
您需要一个库,在本例中是标准 C++ 库。
欢迎来到应用程序部署的美妙世界。
运行该工具取决于您的可执行文件,它会告诉您哪些 DLL 还需要与您的 EXE 一起复制。
该程序可以帮助您找到无法运行的计算机上缺少哪些 dll(如果有)
默认情况下,只有 C 运行时的发布版本和 C++ 标准库 dll 与 Windows 一起安装。安装 Visual Studio 将另外安装调试版本。
确保您正在部署的版本完全在发布模式下构建。
尝试在发布模式下编译,并确保所有需要的 DLL 都安装在目标机器上。这个对我有用。
你对调试库有依赖吗?