2013-12-20 103 views
0

我有一个基本程序来创建一个带有SDL的窗口,并且它在编译和运行程序时唯一给出的是一个命令行提示符,表示Press <RETURN> to close this window...我不确定是什么造成了这一点。有人知道如何解决这个问题吗?当我使用SDL运行C++程序时获取命令行

这里是main.cpp的文件

#include <iostream> 
#include <SDL2/SDL.h> 

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

    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Window* window; 

    window = SDL_CreateWindow(
       "Requiem", 
       SDL_WINDOWPOS_UNDEFINED, 
       SDL_WINDOWPOS_UNDEFINED, 
       640, 
       480, 
       SDL_WINDOW_SHOWN|SDL_WINDOW_OPENGL 
      ); 

    if(window == NULL) { 
     std::cout << "Could not create window: " << SDL_GetError() << std::endl; 
     return 1; 
    } 

    SDL_Delay(3000); 

    SDL_DestroyWindow(window); 

    SDL_Quit(); 
    return 0; 
} 

,在这里如果需要

TEMPLATE = app 
CONFIG += console 
CONFIG -= qt 

LIBS += -L C:/Users/Zach/Documents/dev/libs/SDL2-2.0.1/i686-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 
INCLUDEPATH += C:/Users/Zach/Documents/dev/libs/SDL2-2.0.1/i686-w64-mingw32/include 

SOURCES += main.cpp 

和我所看到的图片是的.pro

enter image description here

+0

我记得,SDL应用程序不是控制台应用程序。 –

+0

@JoeZ当我创建项目时,我只是选择了“Plain C++ Application”,我应该选择其他的东西? – zachstarnes

+0

@JoeZ即使我添加一个'std :: cout <<“Blah blah”;'它甚至不会在命令行中显示 – zachstarnes

回答

2

围棋到项目设置,然后转到“运行”选项卡,然后取消选中“在终端中运行”。

然后进入你的.pro文件并注释掉“CONFIG + = console”。

然后转到Project> Clean All。

然后重建并运行您的项目。

编辑:

这将使从而使stdoutstderror被重定向到Qt Creator中的“应用程序输出”选项卡。

您的std::cout未显示的原因可能是因为它没有被刷新。你必须结束一条线才能出去。

std::cout << "Some text" << std::endl; 

希望有所帮助。

+0

非常感谢你的帮助。我也意识到,sdl2.dll以某种方式从调试文件夹中被删除,所以我将它添加回来,现在一切正常!再次感谢 – zachstarnes

相关问题