带有 C 的 SDL2 无法打印到 Windows 上的控制台

问题描述 投票:0回答:1

我可以在计算机上很好地运行 c,但是当我包含 SDL 头文件时,该函数不会使用任何 stdio 输出方法进行打印。

例如,此代码编译并不会引发任何错误,但不会打印。

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

int main(int argc, char* argv[]) {
    printf("hello world");

    return 0;
}

我在网上查了一下,发现SDL用具体的论据重新定义了主要功能,据我所知,我的与他们的相符。我尝试过简单地打开一个窗口,而不去打印任何东西,但这也没有奏效。

有任何已知的修复方法吗?这是一个常见问题吗?

c windows sdl sdl-2
1个回答
0
投票

您的最小示例似乎可以在 Debian 12 Linux 上运行

$ cat sdl2_test.c 
#include <stdio.h>
#include <SDL2/SDL.h>

int main(int argc, char* argv[]) {
    printf("hello world");

    return 0;
}

$ gcc -O3 -o myprogram sdl2_test.c `sdl2-config --cflags --libs`
$ ./myprogram 
hello world

也许您的程序没有将输出刷新到终端。尝试添加换行符,如下所示

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

int main(int argc, char* argv[]) {
    printf("hello world\n");

    return 0;
}

或者

\r\n
(如果您使用的是 Windows)

$ sdl2-config --cflags --libs
-I/usr/include/SDL2 -D_REENTRANT
-lSDL2
$ sdl2-config --version
2.26.5
© www.soinside.com 2019 - 2024. All rights reserved.