gpt4 book ai didi

c - SDL_init() 导致 c 文件不输出任何内容

转载 作者:太空狗 更新时间:2023-10-29 15:30:03 27 4
gpt4 key购买 nike

我有以下代码。

#include <stdio.h>
#include <SDL/SDL.h>
#include <SDL/SDL_thread.h>

#ifdef __MINGW32__
#undef main
#endif

int main (int argc, char **argv)
{
printf ("Kishore\n");

if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER))
{
fprintf (stderr, "SDL: could not able to initialize SDL : %s", SDL_GetError());
exit (1);
}
}

能够毫无问题地编译。但是,当我运行可执行文件时,它没有给出任何输出。使用的 gcc 命令:

gcc -lSDL test.c -o test.exe

我是否遗漏了什么。

最佳答案

Windows 命令行程序使用 main 入口点并将 stdoutstderr 文件句柄(通过 printf 语句)输出到控制台窗口。 Windows GUI 程序使用 WinMain 入口点并且不设置 stdoutstderr 文件句柄以转到控制台窗口(正如它们所做的那样未初始化要输出到的控制台窗口),这就是为什么您看不到 printf 语句的输出。

POSIX (Linux/Solaris/BSD/...) 为控制台和 GUI 应用程序使用 main 入口点并设置 stdoutstderr 正确,以便它们出现在终端/控制台窗口中。

SDL 是一种跨平台 API,可简化图形程序,因此在 Windows 上它使用 WinMain 入口点,因此它可以创建一个显示图形的窗口,而其后没有控制台窗口. SDL WinMain 调用 main 函数,因此您可以在所有平台上使用 main 入口点。

过去,我发现:

test.exe | cat

工作,但是 YMMV。

关于c - SDL_init() 导致 c 文件不输出任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com