如何在SDL2.0的pro文件Qt Creator中包含SDL_ttf

时间:2014-03-11 23:07:12

标签: sdl qt-creator fedora sdl-2 sdl-ttf

我试图添加一个简单的文字来在窗口中呈现它。但我有一个问题......

每次控制台都会显示以下答案:

"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;
        }
    }

}

进一步的信息:

  • Fedora 20
  • Qt Creator
  • 使用yum
  • 安装的所有SDL软件包
  • 与可执行文件相同的目录中的ttf字体

提前谢谢!

1 个答案:

答案 0 :(得分:0)

将评论写入正式答案:

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

如果使用SDL 2,请确保使用SDL2_ttf