C++"Hello World"在VM上崩溃
c++ "hello world" crashing on vm
所以我的代码非常简单:
#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
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Visual Studio在尝试读取resource.txt文件时崩溃
- C++"Hello World"在VM上崩溃