我已经构建了这个只有一个C ++文件的SFML项目。它可以在我的计算机上运行,无论是否有Visual Studio。我选择了发布x86选项,然后压缩了release文件夹并将其发送给无法运行它的朋友。他们收到一条错误消息,“程序无法启动,因为您的计算机缺少MSVCP140.dll。请尝试重新安装该程序。”我该怎么做才能解决这个问题?如果这是一个新问题,我很吵。 感谢未来的任何帮助! =]
答案 0 :(得分:2)
这是一个众所周知的问题,幸好它有一个众所周知的解决方案。
您的朋友只需要在此处下载并安装Visual Studio 2015可再发行组件包:https://www.microsoft.com/en-us/download/details.aspx?id=48145
由于您说您的程序是为x86(32位)构建的,因此请确保它们下载相应的x86可再发行组件。如果你决定为我推荐的x64(64位)构建它,那么请确保它们下载相应的x64可再发行组件。
如果您要为程序安装一个安装程序,那么强烈建议将其与Visual Studio 2015可再发行程序包捆绑在一起(如Trevor Hickey在评论中所述)。
哦,但为什么?
当您的程序由Visual Studio编译和链接时,它正在使用为相同版本的Visual Studio创建并使用的C ++标准库版本(在您的情况下为2015,我可以通过所需的DLL名称来判断) MSVCP的 140 强> .DLL)。由于vanilla Windows不附带此库,因此它是一个关于任何计算机是否具有它的故事,因为它可能已经或可能没有被其他需要它的程序安装。