![](/img/trans.png)
[英]My app won't run unless I declare main as wmain. Why is that? (Visual Studio 19)
[英]Why won't my program run unless Visual Studio 2008 is installed?
我写过一个使用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 Runtime(CRT),标准C ++,ATL,MFC,OpenMP和MSDIA库的运行时组件。 对于支持并行部署模型(CRT,SCL,ATL,MFC,OpenMP)的库,它们安装在支持并行程序集的Windows操作系统版本的本机程序集缓存(也称为WinSxS文件夹)中。
因为默认情况下它们并未安装在所有Windows上,尤其是VS 2008之前发布的那些。
即使是
cout << "Hello, World" << endl;
您需要一个库,在本例中是标准C ++库。
欢迎来到应用程序部署的精彩世界。
运行该工具取决于您的可执行文件,它将告诉您还需要与EXE一起复制哪些DLL。
该程序可以帮助您找到计算机上缺少哪些dll(如果有),它们将无法运行
默认情况下,Windows仅安装C运行时和C ++标准库dll的发行版本。 安装Visual Studio还将安装调试版本。
确保您正在部署的版本完全在发布模式下构建。
尝试在发布模式下进行编译,并确保在目标计算机上安装了所有必需的DLL。 这个对我有用。
你对调试库有依赖吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.