C++“Hello World.exe”崩溃 - “Hello World.exe 已停止工作。”在命令提示符中使用时
Posted
技术标签:
【中文标题】C++“Hello World.exe”崩溃 - “Hello World.exe 已停止工作。”在命令提示符中使用时【英文标题】:C++ "Hello World.exe" crashes - "Hello World.exe has stopped working." when used in command prompt 【发布时间】:2014-01-08 16:52:12 【问题描述】:我开始学习 C++ 并编写了一个“Hello World”程序。当我尝试在命令提示符下运行它时,它崩溃并给我一条 Windows 消息,说“Hello World.exe 已停止工作。”。
代码:
#include <iostream>
#include <string>
int main()
std::string response;
std::cout << "Hallo Welt\n";
std::cin >> response;
std::cout << "User: " << response;
return(0);
我使用 Eclipse IDE 和 MinGW 作为编译器。我已经在环境变量中设置了MinGW/bin的路径。在我将 MinGW/bin 目录中的所有 dll 复制到 Hello World.exe 的文件夹中后,程序运行顺利。因此,似乎需要这些 dll 的任何东西都无法正确访问它们。我想省去为我创建的每个项目复制 dll 的麻烦。有什么办法可以解决这个问题吗?
我对我的计算机和编程术语还不是很自信,所以描述可能有点粗略 - 仍然非常感谢帮助!
干杯!
【问题讨论】:
添加-static -static-libgcc
可能有助于 DLL 移动,但根据我的经验,当您尝试运行程序时,缺少一个会伴随着 Windows 给出一个明显的错误。
除非你有充分的理由使用 MinGW,否则我会转向 Visual C++ Express,它也是免费的,允许你使用本机库进行编程。
您需要静态链接或查看在您运行命令的 shell/环境中获取正确的 LOADLIBRARYPATH。
【参考方案1】:
以下instructions 为我完成了这项工作,因此我将它们添加到此处以供将来参考,因为此问题需要相当长的时间。
先决条件
应用了所有当前软件更新的 Windows 7 64 位。 MinGW 0.5-beta–20120426–1 或更高版本。 Java JRE 1.7 或更高版本。 日食安装步骤
从 Oracle 安装 Java JRE。 安装 MinGW。在选择组件步骤中,选择“C++ 编译器”和“MSYS 基本系统”进行安装。 为 C++ 开发人员下载 Eclipse。 解压下载到您的下载文件夹的 Eclipse 存档。 打开在提取的 Eclipse 中找到的 Eclipse 应用程序 文件夹。[2] 通过从 文件和新建菜单。 在项目的可执行文件下选择“Hello World C++ 项目” 为您的新 C++ 项目的工具链键入和 MinGW GCC。类型 一个项目名称,然后单击完成按钮。 添加“-static-libgcc -static-libstdc++”作为新的链接器标志 项目。此文本应添加到 Linker flags 字段,该字段 可以在Project中右键新建Project找到 资源管理器并单击属性。在项目属性下, 展开 C/C++ Build 菜单并单击 Settings。在工具下 设置选项卡,展开 MinGW C++ 链接器菜单并单击 各种各样的。将文本添加到 Linker flags 字段,然后单击 应用按钮。 点击Project菜单下的Build Project,然后点击Run下面的 运行菜单。 通过查看 控制台的输出。
请注意,步骤 8 是解决问题的步骤。
注意:您还应该将freeglut.dll
复制到您的.exe
所在的目录中。
【讨论】:
【参考方案2】:我遇到了完全相同的问题。我发现我的路径上可能存在同一个 DLL 的不同版本。所以我只是将我的 C:\MinGW\bin 路径从路径列表的末尾移到了前面,现在它可以工作了。但也许这个解决方案会破坏一些依赖其他版本的 DLL 文件的其他软件。
【讨论】:
以上是关于C++“Hello World.exe”崩溃 - “Hello World.exe 已停止工作。”在命令提示符中使用时的主要内容,如果未能解决你的问题,请参考以下文章