我有以下代碼在SDL2應用程序中繪製一些文本。當我建立並運行時,我一直看到TTF_OpenFont() Failed: Couldn't load font file
的錯誤。我試過以下內容:SDL_ttf「無法加載字體文件」與c + +中的SDL2
- 確保字體文件位於正在運行程序的當前目錄中。實際上,我已經將字體放在程序可以運行的幾乎任何目錄中,並嘗試使用絕對路徑。
- 設置不同的權限,並擁有該文件
- 與
SDL_RWFromFile
單獨打開文件如下所述:http://www.gamedev.net/topic/275525-sdl_ttf-weirdness/ - 下載並重新編譯SDL_ttf的新版本(2.0.14)
這裏是我的代碼:
void SDLRenderer::drawText(
const Vector2d& pos,
string message,
const Color& color)
{
if(!TTF_WasInit()) {
cerr << "TTF_Init failed " << TTF_GetError() << endl;
exit(1);
}
TTF_Font* fixed = TTF_OpenFont("./DejaVuSansMono.ttf", 16);
if (fixed == NULL) {
cerr << "TTF_OpenFont() Failed: " << TTF_GetError() << endl;
TTF_Quit();
SDL_Quit();
exit(1);
}
...
我也叫這個代碼的類的構造函數TTF_Init()
。我還有點不確定如何進一步調試,因爲gdb甚至沒有在錯誤發生後給出回溯,也似乎沒有讓我步入TTF_OpenFont函數。