このプログラムを実行しましたが、コンソールに出力が表示されず、すぐに終了します。私は何が間違っているのですか?
コード:
#include <iostream>
#include <SDL/SDL.h>
using namespace std;
int main(int argc, char *argv[]) {
//The images
cout << "Hello World" << endl;
SDL_Surface* hello = NULL;
SDL_Surface* screen = NULL;
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING );
//Set up screen
screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
//Load image
hello = SDL_LoadBMP( "heldlo.bmp" );
//Apply image to screen
SDL_BlitSurface( hello, NULL, screen, NULL );
//Update Screen
SDL_Flip( screen );
//Pause
SDL_Delay( 20000 );
//Free the loaded image
SDL_FreeSurface( hello );
//Quit SDL
SDL_Quit();
return 0;
}
minGWを使用して、ライブラリを渡します。
mingw32 SDLmain SDL
mainメソッドの署名は正しいようです。これは次のようになります 。SDLが含まれている場合、単純なtcpエコープログラムが機能しませんか?
または、ここでは、リンカーサブシステムはコンソールである必要があると述べられています:http: //www.gamedev.net/topic/376205-defeating-sdl-linker-errors-in-visual-studio-net/
だから私は合格してみました
-Wl,--subsystem,console -mconsole
コンパイラとリンカの両方に。これはビルドして起動し、以前と同じで、出力もウィンドウもありません。
私にとっては、オプションコンソールを渡すのは意味がありません。なぜなら、私は実際にウィンドウを見たいのですが、私はこれに完全に精通しているので、わかりません。SDLにはコンソールオプションでプログラムを実行するか、mainメソッドをに変更する必要があると言っている人を読んでくださいWinMain
。しかし、彼らはまた、これは意味がなく、SDLはで実行されることになっていると言いますmain
。
また、リンカーとコンパイラに「コンソール」ではなく「ウィンドウ」を渡すテストも行いましたが、成功しませんでした(同じように動作します)。
また、コンソールに出力が表示されない理由もわかりません。すべてのSDLのもの(特にインクルード)を削除すると、出力が表示されます。また、非常に高速に実行されるため、メインメソッドはおそらくまったく実行されていません。
何か助けは...?