SDL里將所有stdout和stderr重定向到了stdout.txt和stderr.txt文件中,在學習SDL的過程中,每次要打開一個文本文件看日志很麻煩。之前也遇到這個問題,沒有解決,這次特意上網找了下,終于得以解決。
參考解決方案地址:
http://www.gamedev.net/community/forums/topic.asp?topic_id=371770下面說下解決辦法。
SDL源碼src\main\win32目錄下有個SDL_win32_main.c這個文件,里面處理了輸出流的重定向。有這么幾句:
#ifndef NO_STDIO_REDIRECT

else {
redirect_output();
}
#endif
可以看到NO_STDIO_REDIRECT這么一個條件,因為這是在編譯過程中選擇的,而SDL代碼里并沒有關于NO_STDIO_REDIRECT的定義,如果直接通過lib鏈接的話,肯定是會redirect的。所以我們的做法就是在compile時加入define選項重新編譯這段源碼,以后如果想要重定向時,去掉define選項即可。參考上面網站的做法(有所不同,他的辦法我沒有成功):
1、將SDL_win32_main.c加入項目中;
2、去掉鏈接庫選項-lSDLmain;
3、在編譯SDL_win32_main.o的時候加入-DNO_STDIO_REDIRECT選項(或者在SDL_win32_main.c中加入#define NO_STDIO_REDIRECT一句)。
這樣就一切OK了,看吧。
posted on 2010-04-28 22:28
RayRiver 閱讀(975)
評論(0) 編輯 收藏 引用 所屬分類:
OpenGL