我一直在尝试在Windows上进行开发,而不是像平时编码时使用的Linux,但是我遇到了很多麻烦。当我尝试编译一个SDL程序时,出现了一个非常奇怪的问题。只要我包含了SDL库,程序就无法编译,并给出以下错误:
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../libmingw32.a<main.o>: In function 'main':
C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to 'WinMain@16'
collect2: ld returned 1 exist status
我正在控制台上使用MinGW。
举例来说,使用以下命令:
gcc -o test main.c
这个编译很顺利:
#include <stdio.h>
#include <stdlib.h>
int main(int argv, char **argc)
{
printf("Hello, world!\n");
return 0;
}
但是,只要我添加了#include(即使没有调用任何SDL函数),我就会出现上述错误。
使用:
gcc -o test main.c -lSDL
这段代码编译失败:
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
int main(int argv, char **argc)
{
printf("Hello, world!\n");
return 0;
}
任何帮助都将不胜感激!我读到过这是一个常见问题,对于那些忘记有主函数的人来说,但显然这不是我的问题。我还听说WinMain是处理Windows图形程序时使用的主函数,但过去当我更多地在Windows上开发时,这从未成为问题。