C++"Hello World"在VM上崩溃

c++ "hello world" crashing on vm

本文关键字:崩溃 VM World Hello C++      更新时间:2023-10-16

所以我的代码非常简单:

#include "stdafx.h"
#include <iostream>
int main()
{
    std::cout << "Hello World!";
    std::cout << std::endl;
    return 0;
}

就是这样。我正在使用Visual Studio 2015。当我构建代码时没有错误,但是当我将 EXE 复制到我的 Win7 VM(未安装 Visual Studio)时,我得到:程序无法启动,因为缺少MSVCP140.dll....为什么?我试图从调试更改为发布,但同样的错误....为什么我不能在没有安装Visual Studio的情况下在Win7上执行这个简单的代码?

您需要静态链接到C++运行时库。该选项将在生成设置中可用。这会导致它们绑定到可执行文件中,因此它们不需要存在于运行程序的计算机上。(另一种方法是将运行时二进制文件与可执行文件一起分发,但这可能很麻烦)。

顺便说一句,写std::cout << "Hello World!n";通常比写std::endl更可取。请参阅C++:"std::endl" vs ""

您的 Windows 7 虚拟机缺少 Visual C++ 运行时 dll,其中包含您在 hello world 程序中使用的功能,例如 std::cout。您可以从此处下载所需的 c 运行时 dll:https://www.microsoft.com/en-us/download/details.aspx?id=48145