Qt Creator中的非Qt控制台应用程序

时间:2011-06-05 23:45:56

标签: qt windows-xp qt-creator

我想在Qt Creator中创建下面的简单控制台应用程序:

#include <iostream>

int main(int argc, char* argv[])
{
   std::cout << "Hello WOrld";

   return 0;
}

我在SO上看到了一些可能的重复项,我在“运行设置”中勾选了“在终端中运行”选项。控制台窗口会在CTRL + R上弹出,但它不会显示“Hello World”,只需“按Enter即可退出”。

以上是创建一个空项目。

我尝试创建一个“Qt控制台应用程序”,它生成下面的代码。这确实很好,但我想要上面的简单非Qt版本。

#include <QtCore/QCoreApplication>
#include <iostream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    std::cout << "Hello World";

   return a.exec();
}

4 个答案:

答案 0 :(得分:2)

除了勾选“在终端中运行”,你需要在.pro文件中添加“CONFIG + = console”(如果你使用的是qmake)。

TEMPLATE = app

CONFIG += console

SOURCES += main.cpp

答案 1 :(得分:1)

经过很长一段时间再次尝试Qt之后,现在可以了。项目文件默认为“CONFIG - = qt”。我不确定当时是否会解决这个问题,但这是我能看到的唯一区别。

完整的.pro文件:

TEMPLATE = app
CONFIG += console
CONFIG -= qt

SOURCES += main.cpp

答案 2 :(得分:0)

我可以看到的唯一错误是该流未刷新(请将std :: cout行更改为:

std::cout << "Hello World" << std::endl;

然而,这不太可能是你遇到的问题,尽管我在http://www.richelbilderbeek.nl/CppQtHelloWorldConsole.htm发现的以下示例暗示它确实是一个缓冲处理问题,其中QtCreator做出一些关于缓冲的假设。 (注意,该url添加了一个std :: cin.get()调用,这会强制应用程序暂停,因此,您当然应该看到一些输出)。

答案 3 :(得分:0)

如果您偶然发现了这个帖子,因为您的应用程序会立即退出并且控制台只显示&#34;按Enter键退出&#34;:

这是您的应用程序的行为方式,如果您从QtCreator启动它并且它无法找到依赖的DLL(顺便说一下,这非常无用)。要找出究竟缺少的内容,您可以在没有QtCreator的情况下启动应用程序。依赖DLL必须位于此处列出的位置之一http://msdn.microsoft.com/de-de/library/7d83bc18.aspx