Legal X11是否加载字体?
问题描述:
我正在学习X11编程,稍微弄乱了XLoadFont。以下代码适用于一台计算机,但不适用于另一台。但是,从所有文档中我可以发现它看起来是合法的。请让我知道,如果我感到困惑的东西:Legal X11是否加载字体?
// fail.c
#include <X11/Xlib.h>
int main(int argc, char** argv) {
Font f;
Display* disp;
XFontStruct* f1;
disp = XOpenDisplay("");
f = XLoadFont(disp, "*");
f1 = XQueryFont(disp, f);
XFreeFont(disp, f1);
return 0;
}
,当然还有编译:
gcc -o fail fail.c -lX11
如果我理解正确的XLoadFont“*”应该只是返回找到的任何字体。然而,在我试过的三台电脑中,有两台失败。请指教。
答
事实证明,我的发行版(巴布亚)将安装在顶部以下行一些不好的fonts.alias文件:匹配
! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
这结果(我认为)的“!”到“*”,然后尝试加载行的其余部分作为字体,显然不是字体名称。杀死这条线,现在一切正常。