Cof*_*ker 5 c++ windows mingw sdl-2
我想在运行SDL 2程序时在控制台上打印一些调试内容,但这似乎是不可能的。printf("Hi!\n")而SDL_Log("Hi!\n")两者不会做我任何好处。
我什至在初始化SDL之前(以及退出它之后)都尝试过打印,但无济于事。似乎仅导入 SDL库就不可能将任何内容打印到控制台。
这是我正在编译的参数,因为可能与它有关:
g++ hello.cc -IC:\mingw_dev_lib\include\SDL2 -LC:\mingw_dev_lib\lib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -std=c++11
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
小智 6
由于在使用 mingw 时,窗口中的 SDL2 仍然存在这个问题,因此这是我发现并测试过的更好的解决方案。
不要像其他人建议的那样删除-mwindows构建选项。您应该添加“pkg-config --libs SDL2”作为构建选项,但对于调试构建选项,您还应该在末尾添加-mconsole 。它应该位于-mwindows标志之后。
调试:`pkg-config --libs SDL2` -mconsole
发布:`pkg-config --libs SDL2`
注意:我正在针对 Windows 10、SDL2 v2.0.9、Msys64、mingw64、Code::Blocks 17.12 `
pkg-config --libs SDL2`进行编译,扩展为:
-LC:/msys64/mingw64/lib -lmingw32 -lSDL2main - lSDL2-mwindows
参考文献:
SDL2:在 pkg-config --libs 输出中保留 -mwindows 标志 #2419
配置:在 MinGW 下链接 SDL 时强制 -mconsole
因此,我找出了阻止我看到输出的原因。这些编译选项
-Wl,-subsystem,windows
本质上是禁用控制台窗口,从而阻止显示输出。这对于完成游戏非常有用,但对调试却很糟糕。所以,我说干就干,删除了这些编译选项,现在printf()和SDL_Log()工作完美的罚款。
| 归档时间: |
|
| 查看次数: |
3448 次 |
| 最近记录: |