1

我正在尝试添加一个简单的文本以在窗口中呈现它。但是我有一个问题...

每次控制台向我显示以下答案时:

"Couldn't load font file"

我不知道这个问题的根源是什么。也许错误出在 .pro 文件中:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

INCLUDEPATH += /usr/include

LIBS += -L/usr/lib -lSDL2 -lSDL2_image -lSDL_ttf

SOURCES += main.cpp 

main.cpp 中还有另一部分:

#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>

using namespace std;

void loop();

int main()
{

    SDL_Init(SDL_INIT_VIDEO);
    SDL_SetHint( SDL_HINT_RENDER_VSYNC, "1" );
    SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "1" );

    if( TTF_Init() == -1 )
    {
        cout << TTF_GetError() << endl;
    }
    else {

        TTF_Font* font = TTF_OpenFont("lazy.ttf", 10);

        if( font == NULL ) {

            cout << TTF_GetError() << endl;

        }
        else {

            cout << "Font loaded" << endl;

        }
    }

    loop();

    return 0;
}

void loop() {

    bool quit(false);
    SDL_Event e;

    while( !quit ) {

        SDL_PollEvent(&e);

        switch( e.type ) {

        case SDL_QUIT:
            quit = true;
            break;
        }
    }

}

更多信息:

  • 软呢帽 20
  • Qt 创作者
  • 用 yum 安装的所有 SDL 包
  • 与可执行文件在同一目录中的 ttf 字体

先感谢您 !

4

1 回答 1

0

将评论放入官方答案:

如果您链接SDL_ttf而不是SDL2_ttf意外链接,则可能会发生这种情况。这些函数具有相同的名称,因此调用成功,但操作失败。

SDL2_ttf如果使用 SDL 2 ,请确保链接。

于 2015-09-29T03:17:33.830 回答