首页 > 解决方案 > 一起编译 SDL 和 GTK+

问题描述

我一直在尝试在 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

标签: ccompilationgtksdlgtk3

解决方案


推荐阅读