C++ 加载TTF-SDL2时出现分段错误

C++ 加载TTF-SDL2时出现分段错误,c++,sdl-2,sdl-ttf,C++,Sdl 2,Sdl Ttf,我基本上遇到了与此用户相同的“原始”问题: 然而,即使在安装了我试图使用的字体之后,我仍然会在运行程序时出现分段错误 我使用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-

我基本上遇到了与此用户相同的“原始”问题:

然而,即使在安装了我试图使用的字体之后,我仍然会在运行程序时出现分段错误

我使用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);

你知道这意味着什么吗?

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

if(!font) {
    printf("TTF_OpenFont: %s\n", TTF_GetError());
}

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

if(!font) {
    printf("TTF_OpenFont: %s\n", TTF_GetError());
}

我看到font=0,然后我看到字体被取消引用两次(font->face和font->kerning)。为什么字体等于0?@donjuedo我不知道你说的为什么字体等于0是什么意思。你在哪里看到它等于0?这就是信息的含义吗?我已经在OP中添加了一些关于当前如何加载要使用的字体文件的代码。
font=font@entry=0x0
我看到font=0,然后我看到字体被取消引用两次(字体->字体和字体->字距)。为什么字体等于0?@donjuedo我不知道你说的为什么字体等于0是什么意思。你在哪里看到它等于0?这就是信息的含义吗?我已经在OP中添加了一些关于当前如何加载要使用的字体文件的代码。
font=font@entry=0x0
谢谢!正如你提到的,由于我提供的位置,加载文件时遇到问题。谢谢!正如您所提到的,由于我提供的位置,加载文件时遇到了问题。