1

我基本上遇到了与该用户在这里遇到的相同的“原始”问题:C++ SDL segmentation fault

但是,即使在安装了我尝试使用的字体之后,我仍然会在运行程序时立即收到分段错误。

我使用 gdb 进行调试,它返回:

TTF_SizeUNICODE (font=font@entry=0x0, text=text@entry=0xbfffefe0, w=w@entry=0xbfffef9c, h=h@entry=0xbfffefa0) at SDL_ttf.c:1127
1127        use_kerning = FT_HAS_KERNING( font->face ) && font->kerning;

这是我加载 TTF 字体的方式:

TTF_Font *font;
TTF_Init();
font = TTF_OpenFont("/includes/game_over.ttf",30);

关于这意味着什么的任何想法?

4

1 回答 1

4

字体为空,因为TTF_OpenFont无法打开字体。在 TTF_OpenFont 之后添加这一行以查看问题所在(例如文件丢失?权限不足等) 或者您的意思是包含/game_over.ttf 而不是 /includes/game_over.ttf 指向根文件夹?

if(!font) {
    printf("TTF_OpenFont: %s\n", TTF_GetError());
}
于 2015-09-27T21:30:01.257 回答