我写过一款使用GLUT,OpenGL和FMOD的游戏。问题是二进制文件不会运行,除非在计算机上安装了Visual Studio 2008。
为什么会这样?
答案 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)
您是否依赖于调试库?