0

我的应用程序在 macOS 上静态链接libfontconfig.a,但不附带任何 fontconfig 配置文件。

每次应用程序启动时,它都会给出关于fonts.conf未找到的警告。之后,它会使用默认的 fontconfig 设置,一切正常。有没有办法构建或配置fontconfig为从不使用fonts.conf而始终使用默认设置?

4

1 回答 1

1

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

目前您的应用程序的详细信息尚不清楚,例如目标平台 Mac OS X 或 iOS(因此,如果 OP 提供更多信息,可以更新此答案)但我认为您已fonts.conf意外删除并且:

根据概要man fonts-conf在线手册。对于 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 应用程序不依赖依赖项。所以我试图fonts.conf在我的 MacBook 上找到一个文件:

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文件放在上面的必要位置,也可以使用Apple Open Source for 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>

PS请OP发表评论,以便我们一起改进答案。

于 2016-09-24T20:43:13.130 回答