fontconfig交叉编译 PRI_CHAR_WIDTH_STRONG报错

本文详细讲述了在进行fontconfig-2.12.1的交叉编译时遇到的‘PRI_CHAR_WIDTH_STRONG’未声明错误,通过修改fontconfig源码中的宏定义并重新编译,成功解决了问题,适用于高级版本fontconfig以外的编译环境。
摘要由CSDN通过智能技术生成

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虽然没这个错,但是交叉编译报的是其它的没能解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值