В Windows есть большое различие между приложениями 'console' и 'GUI'.Последние SDL2 могут справиться с обоими, но в конечном итоге именно компоновщик решает, какой тип приложения у вас есть.С gcc / mingw он управляется переключателями -mconsole
и -mwindows
.Например, с вашим исходным кодом:
> g++ test.cpp -lmingw32 -lSDL2main -lSDL2 -mconsole
> a.exe
hello world
> g++ test.cpp -lmingw32 -lSDL2main -lSDL2 -mwindows
> a.exe
>
Выход все еще там, но stdout
больше не подключен к консоли для приложения с графическим интерфейсом, поэтому вы не увидите его в консоли, но выиспользуйте его в отладчике или перенаправьте stdout
в другое место, например:
> a.exe | more
hello world
Можно также обрабатывать вывод консоли на стороне приложения, перенаправляя stdin
/ stdout
на CONIN$
и CONOUT$
, но таким образом, я полагаю, вы потеряете способность перенаправления на вызывающей стороне.