2016-09-15 55 views
0

我的应用程序在macOS上静态链接libfontconfig.a,但没有附带任何fontconfig配置文件。静态链接fontconfig:禁用`fonts.conf`文件

每次应用程序启动时,都会发出有关fonts.conf未找到的警告。之后,它恢复默认的fontconfig设置,一切都很好。有没有办法建立或配置fontconfig永不使用fonts.conf,而是始终使用默认设置?

回答

0

我想,这个问题本身实际上是要找出这个缺失的文件。

目前应用程序的细节还不清楚,如目标平台的Mac OS X或iOS(所以这个答案可能会被更新,如果OP提供更多信息),但我认为你不小心删除fonts.conf和:

根据到man fonts-confonline manual的简介。对于Linux fonts.conf通常位于:

/etc/fonts/fonts.conf 
/etc/fonts/fonts.dtd 
/etc/fonts/conf.d 
$XDG_CONFIG_HOME/fontconfig/conf.d 
$XDG_CONFIG_HOME/fontconfig/fonts.conf 
~/.fonts.conf.d 
~/.fonts.conf 

但在你的情况下,该文件必须与应用程序一起出货,因为Mac OS X和iOS应用程序不依赖于依赖。于是,我就发现我的MacBook上一个fonts.conf文件有:

sudo /usr/libexec/locate.updatedb 
locate fonts.conf 

顺便说一句,我发现它在GIMP

/Applications/GIMP.app/Contents/Resources/etc/fonts/fonts.conf 

后来我决定寻找它在GitHub上,我发现它在这些知识库: 1 | https://github.com/EricssonResearch/cerbero/blob/master/data/xcode/templates/ios/GStreamer%20Base.xctemplate/fontconfig/fonts.conf 2 | https://github.com/xil3f/podofo_iOS_sample/blob/cd0be2d225d0bdfbe3c0ec163fb4cce67534825f/fonts/fonts.conf

这些文件几乎完全相同。

对于跨平台的Linux发起的Mac OS X应用程序它位于:./Contents/Resources/etc/fonts/fonts.conf

对于iOS示例应用程序它位于:./fontconfig/fonts.conf./fonts/fonts.conf

所以这些地方可以给你哪里的想法将fonts.conf文件放在您的项目上。

您可以尝试把上述必要的位置(一个或多个)这些fonts.conf文件,也可以使用此sample configuration file苹果开源的OS X提供:

<?xml version="1.0"?> 
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 
<fontconfig> 
    <dir>/System/Library/Fonts</dir> 
    <dir>/Library/Fonts</dir> 
    <dir>~/Library/Fonts</dir> 
</fontconfig> 

附:请OP留下评论,以便我们一起改进答案。