我一直在尝试在Linux和Ubuntu上一起编译SDL和GTK +。该程序输出两个窗口,一个GTK +和一个并行的SDL,但我似乎无法将它们编译在一起。
似乎没有正确链接到SDL库。当分别运行SDL和GTK +时(而不是一起运行),我的代码和编译标志起作用。
这些是我得到的编译标志和错误消息:
gcc entry.c -o entry `pkg-config --cflags gtk+-3.0` `sdl2-config --cflags` `pkg-config --libs gtk+-3.0` -lm -lSDL2_ttf
错误消息:
/tmp/cc0u3LoN.o: In function `main':
entry.c:(.text+0x48): undefined reference to `SDL_Quit'
/tmp/cc0u3LoN.o: In function `create_window':
entry.c:(.text+0x355): undefined reference to `SDL_Init'
entry.c:(.text+0x37c): undefined reference to `SDL_CreateWindow'
entry.c:(.text+0x3a1): undefined reference to `SDL_CreateRenderer'
collect2: error: ld returned 1 exit status
这是我的主要爱好
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
SDL_Surface *screen;
SDL_Event event;
SDL_Simplewin *sw;
create_window(sw);
openGtkWindow();
/*display_text(sw);*/
SDL_Quit();
return 0;
gtk_main();
return 0;
}
这些是我在标题中使用的库:
gtk / gtk.h,errno.h,SDL.h,stdio.h,string.h,stdlib.h,math.h,SDL_ttf.h