C++/G++;你好,世界应用程序问题,可能是编译 我试图用G+编译器编译Windows上的第一个C++文件…< /P>
我的cpp文件如下-C++/G++;你好,世界应用程序问题,可能是编译 我试图用G+编译器编译Windows上的第一个C++文件…< /P>,c++,compiler-construction,C++,Compiler Construction,我的cpp文件如下- #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } 然后我要编译我的程序 g++ hello.cpp 它会创建一个文件名a.exe(默认值),但当我单击它时,命令提示符会快速闪烁打开,然后它就消失了 我做错了什么?它应该向世界问好!在提示符下并停留在那里,对吗?这只是Windows从UI执行命令行文件的正常行
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
然后我要编译我的程序
g++ hello.cpp
它会创建一个文件名a.exe(默认值),但当我单击它时,命令提示符会快速闪烁打开,然后它就消失了
我做错了什么?它应该向世界问好!在提示符下并停留在那里,对吗?这只是Windows从UI执行命令行文件的正常行为——程序一退出(在您的情况下是立即退出),提示符窗口就会关闭 从命令行运行它将使它保持运行状态。为此,
Start>Run>cmd
,然后cd
到目录,然后键入a.exe
或者,您可以等待用户的输入以保持窗口打开。这对于测试来说是很好的,但是实际上从命令行执行程序的人都不希望在程序应该正确退出时,必须按一个键来停止程序的运行。提示与您的程序或语言无关。这与你的操作系统有关 您的程序应该从命令行运行,当它完成时,命令行(显然)将使命令窗口保持打开状态 如果你真的愿意,有一些技巧可以让你保持清醒,但这些只是技巧,不一定是好的练习。其中之一是:
int main()
{
std::cin.get(); // waits for enter
}
你没有做错什么。程序的末尾没有读线或任何东西,因此当它完成执行时,它将关闭。在程序末尾添加一个读取字符,使其等待输入终止。您所做的看起来是正确的,但是如果您在Windows中双击程序来启动它,新的命令提示符将在完成后关闭。由于您已经打开了一个命令提示符进行编译,请尝试从那里启动程序:
g++ hello.cpp -o hello.exe
hello.exe
你做的一切都对。命令提示符是否保持打开与程序无关。命令提示符本身就是一个程序,它的默认行为是,当它响应控制台应用程序的执行而启动时,它会在程序完成后立即关闭 您应该自己启动命令提示符,然后从提示符中运行程序,而不是双击其图标启动程序
不要陷入对某种类型的
暂停
函数添加调用或在程序结束时等待输入的坏习惯。您不应该养成在应用程序中对特定shell的不需要的行为进行硬编码的习惯。只要以正确的方式使用shell,就可以获得您想要的行为。谢谢您的警告,所有这些答案都很好。可能重复:哇……这是一个hello world应用程序。在生产代码中,永远没有理由使用类似的东西。另一方面,“Hello World”应用程序是由初学者编写的,他们应该被教导正确的做事方式,而不是快速而肮脏的方式。或者,如果Windows没有使开发C++程序变得非常困难,我们就不必求助于这样的黑客。从IDE运行程序怎么样?它将打开它,运行它,然后关闭它。本打算提到ide的事情,但决定它不会有任何好处。我唯一一次这样做是在VisualStudio中。
g++ hello.cpp -o hello.exe
hello.exe