fontconfig交叉编译
别的不多说,直接上make的报错
“fontconfig-2.12.1/src/fcmatch.c:324:63: error: ‘PRI_CHAR_WIDTH_STRONG’ undeclared here (not in a function); did you mean ‘PRI_WIDTH_STRONG’?”
"fontconfig-2.12.1/src/fcmatch.c:324:63: error: ‘PRI_CHAR_WIDTH_STRONG' undeclared here (not in a function); did you mean ‘PRI_WIDTH_STRONG’?"
百度搜了好久没是一个没用的答案,github里搜才找到靠谱的。
进入源码目录,我的是
1.
fontconfig-2.12.1/fontconfig/fontconfig.h
找到#define FC_CHAR_WIDTH “charwidth” /* Int /删了
增加#define FC_CHARWIDTH “charwidth” / Int */
#define FC_CHAR_WIDTH FC_CHARWIDTH
2.
fontconfig-2.12.1/src/fcobjs.h
找到FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL) 删了
增加FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL)
3.
fontconfig-2.12.1/src/fcobjshash.gperf
找到"charwidth",FC_CHAR_WIDTH_OBJECT删了
增加"charwidth",FC_CHARWIDTH_OBJECT
4.
fontconfig-2.12.1/src/fcobjshash.h
找到 {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},删除
增加{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
结束,make && make install 成功
就是修改替换几个宏定义,可以愉快的编cairo了
高版本的fontconfig虽然没这个错,但是交叉编译报的是其它的没能解决