2015-09-27 31 views
1

我基本上和這個用戶在這裏有相同的「原始」問題:C++ SDL segmentation fault加載TTF時出現分段錯誤 - SDL2

但是,即使在安裝我嘗試使用的字體後,我仍然在運行程序後立即收到分段錯誤。

我用gdb調試,並與返回:

TTF_SizeUNICODE ([email protected]=0x0, [email protected]=0xbfffefe0, [email protected]=0xbfffef9c, [email protected]=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); 

任何想法?

+2

我看到字體= 0,然後我看到字體被解除引用兩次(font-> face和font-> kerning)。爲什麼字體等於0? – donjuedo

+0

@donjuedo我不確定你的意思是爲什麼字體等於0.你認爲它等於0?這是什麼信息暗示?我已經向OP中添加了一些關於如何加載字體文件的代碼。 – Quiver

+2

'font = font = entry = 0x0' – erip

回答

4

字體爲空,因爲TTF_OpenFont無法打開字體。在TTF_OpenFont之後加上這行,看看有什麼問題(例如文件丟失?不足的權限等)或者你的意思是includes/game_over.ttf而不是/includes/game_over.ttf指向根文件夾?

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

謝謝!加載文件時遇到問題,因爲我提供的位置正如您所提及的那樣。 – Quiver