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 阅读(893)
评论(0) 编辑 收藏 引用 所属分类:
OpenGL