为什么我的程序运行,除非安装了Visual Studio 2008的?
-
20-08-2019 - |
题
我写使用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中的一些版本。
其他提示
您的意思是,为什么是微软视觉C ++ 的需要2008可重新分发包(x86)?
这个软件包安装运行时 C运行时(CRT)的组件, 标准C ++,ATL,MFC,OpenMP和 MSDIA库。对于库, 支持并排侧部署模型 (CRT,SCL,ATL,MFC,OpenMP的)它们是 安装到本机汇编 缓存,也称为WinSxS文件夹上 Windows操作系统版本 该支撑侧由端组件。
由于它们没有安装在默认情况下所有的Windows,尤其是VS 2008。
在附带的那些即使对于
cout << "Hello, World" << endl;
您需要一个库,其在这种情况下,标准C ++库。
欢迎到应用程序部署的精彩世界。
运行该工具的取决于在您的可执行文件,它会告诉你哪个DLL文件,你还需要伴随着你的EXE复制。
该计划可以帮助你找到的DLL(如果有的话)是缺少在计算机上,它不会运行上
只有C运行时和标准库的DLL是默认安装了Windows的C ++的发布版本。安装Visual Studio将加装调试版本。
请确保您部署在释放模式完全建立。该版本
尝试在释放模式编译,并确保所有需要的DLL安装在目标机器上。它为我工作。
你对调试库的依赖?