【发布时间】:2014-04-15 19:46:36
【问题描述】:
我正在尝试添加一个简单的文本以在窗口中呈现它。但我有一个问题......
每次控制台向我显示以下答案时:
"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 创建者
- 所有用 yum 安装的 SDL 包
- 与可执行文件在同一目录下的ttf字体
提前谢谢你!
【问题讨论】:
-
当您从 SDL_ttf 收到运行时错误时,这表明问题不在代码中,而是字体文件不在可以找到的位置。检查它确实是,并且命名正确(记住文件名是区分大小写的)。
-
我再次检查,但没有任何改变,仍然有这个错误。但我在 SDL 1.2 中翻译了我的代码,它运行良好。 SDL 2 不想使用 SDL_ttf...我不知道为什么...还有其他想法吗?
-
检查你确实有 SDL2 版本的 SDL_ttf,搜索 Fedora 包提示 rpm 版本可能是 2.0.11,即 SDL_ttf 1.2。 2.0 版本称为 2.0.12。
-
哇,它有效!谢谢 !对于会有同样错误的人,我用 yum 删除了 SDL_ttf 并从这个页面安装了 SDL2_ttf-2.0.12 的 tar.gz 版本:libsdl.org/projects/SDL_ttf 然后我修改了 pro 文件,如下所示:TEMPLATE = app CONFIG +=控制台 CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += usr/include/ LIBS += -L/usr/lib -L/usr/local/lib/ -lSDL2 -lSDL2_image -lSDL2_ttf SOURCES += main.cpp
标签: sdl qt-creator fedora sdl-2 sdl-ttf