我有以下代码。SDL_init()导致c文件不输出
#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
我是否缺少任何东西。
如果甚至不打印字符串''Kishore \ n“'?如果你删除'if'语句,并且只有'printf',那么它工作吗? – 2012-08-08 13:11:54
你的代码,在我的系统上,没有任何修改,工作得很好。它引发“Kishore”并且没有错误地退出。 – larsks 2012-08-08 13:24:53
注意:链接的一般规则:如果'A'使用来自'B'的符号,'B'应该在'A'之后。在你的情况下,因为你使用'libSDL.a'中的符号,所以你应该在'test.c'后面写'-lSDL' **。我不知道为什么gcc没有在你的例子中抱怨,但迟早你会遇到这个问题。 – Shahbaz 2012-08-08 16:01:55