我正在学习一些关于X11编程的知识,并在玩弄XLoadFont。以下代码在一台计算机上工作,而在另一台计算机上不工作。然而,从所有的文档中我可以发现它似乎是合法的。如果我对某事感到困惑,请告诉我:
// 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应该只返回找到的任何字体。然而,在三台计算机中的两台上,我试过它,但失败了。请给我建议。
发布于 2014-08-30 23:26:55
结果,我的发行版(gentoo)安装了一些错误的fonts.alias文件,这些文件的顶部有以下一行:
! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $这个结果(我想是)匹配了"!“到"*“,然后尝试将行的其余部分作为字体加载,这显然不是字体名称。杀了这条线现在一切都正常了。
https://stackoverflow.com/questions/25578088
复制相似问题