在SDL FAQ中有一些相关信息,但我需要的是完全消除这些文件,而不是将输出重定向到控制台。我希望程序只在有任何输出时才创建它们,尽管即使这样也没有必要。这些文件只是令人讨厌,我只是想摆脱它们。
非常感谢任何帮助。
答案 0 :(得分:0)
将两者的输出都指向NUL。
答案 1 :(得分:0)
main
您可以避免使用SDL附带的main
,而是提供自己的main
。根据{{3}},您可以在包含SDL_MAIN_HANDLED
之前定义一个名为SDL.h
的宏,从而在SDL 1.3中完成此任务。 this mail仅更改SDL_main.h
,因此您可以在本地SDL安装中修补该文件,而无需重新编译任何内容。但由于主要效果似乎是避免将main
定义为预处理器宏,因此可能只需这样:
#include <SDL.h>
#undefine main
但是,未经测试。您可能必须欺骗构建系统而不使用提供main
resp的库。 SDL WinMain
。
看作The commit for this并不是上面的代码没有将WinMain
定义为宏,您可能只需要声明自己的WinMain
函数而无需执行任何预处理器技巧。您可能也可能不必省略一个库,所以试试这个。
请注意,在SDL 1.3中,您不必再担心这些文件了:它还包括SDL_main.h
,其中包括
- 从WinMain()
中拉出stdio重定向
因此,如果您愿意从源代码编译SDL,这会为您提供另一组选项:您可以从当前HG树开始使用SDL,尽管这样做可能会使您面临可能不稳定的实现。或者您可以将该单个提交移回SDL 1.2,因为与未来版本的兼容性不会因此而受到影响。