没有带有SDL的stdout.txt
No stdout.txt with SDL
我正在开发一个小游戏,使用C++和SDL2,在Windows 7下使用代码::块12.11。我使用的是mingw32-gcc编译器,下载了SDL2的标准预编译Windows发行版(现在是2.0.1),并使用i686-w64-mingw32版本。到目前为止,一切都正常,我得到了图形输出,SDL_ttf扩展也正常工作。
唯一一件从一开始就不起作用的事情是按预期从SDL获得一个txt文件中的stdout:
-
不管我做什么,我从来没有在任何地方得到stdout.txt或stderr.txt,甚至一次也没有看到这些文件被创建过。
-
这些文件也不会在运行时创建,也不会在程序关闭时删除,它们根本不会创建。
-
当我将程序编译为控制台应用程序时,我会在控制台中获得SDL错误输出,但根本没有cout、printf或fprintf(stdout…)(尝试了所有三种)。
-
在没有SDL的情况下编程时,控制台stdout输出工作正常。
所以问题不是将stdout重新路由到控制台,这是SDL和stdout的常见问题,问题是我甚至没有按预期将输出写入相应的文件。
SDL 2.0.0和SDL 2.0.1都会发生这种情况,无论是预编译的还是未更改的。
这就是我的主要功能。myGame.GameStart()运行包括清理在内的所有操作。我对C++还很陌生,所以这里可能也有一些奇怪的错误。
#include "SDL.h"
#include "SDL_ttf.h"
int main(int argc, char* argv[]) {
TTF_Init();
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_TIMER|SDL_INIT_EVENTS);
SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN);
MyGameClass myGame;
myGame.GameStart();
SDL_Quit();
TTF_Quit();
return 0;
}
我正在使用-g和-std=c++0x进行编译。
我正在链接mingw32、SDL2main、SDL2、SDL2_ttf(按顺序)和mwindows。
为了查看控制台,我将其编译为控制台应用程序,并在执行结束时使用Pause选项。
我对Code::Blocks还很陌生,还没有深入了解编译器和调试器的各种选项。
有人有主意吗?我的链接顺序错了吗?链接错误的东西?我的主要功能错了吗?
已解决(简单得令人尴尬):
SDL1.2将其输出到文件中,SDL2没有。然而,由于SDL 2是新的,因此网络上的大多数信息(toturials等)都是关于SDL 1.2的。
此外,使用-mwindows进行编译会将所有stdout和stderr发送为null。
编译而不用解决我的问题。
- 如何将stdout重定向到stderr
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 如何修复此iFile以将.txt输出到控制台
- 无法打开.txt文件
- CMakeLists.txt中的命名空间表示法
- Arduino从Txt读取整数
- 如何使用CLion在Mac上创建一个新的.txt文件
- 如何拆分文件中.txt字母并使用c ++使用数组进行扑克?
- 使用fstream对txt文件中的数字进行循环
- Visual Studio在尝试读取resource.txt文件时崩溃
- 更正 CMakeList.txt 用于谷歌测试的文件?
- 如何从txt文件中读取多个不同长度的数组?
- 在一次迭代中从 txt 文件中读取多行
- 将生成文件转换为 CMakeLists.txt等效项
- 使用循环将多行写入.txt
- 没有带有SDL的stdout.txt
- SDL 停止创建 stdout.txt 和 stderr.txt
- 有人知道如何消除创建stdout.txt和stderr.txt时,SDL程序执行