编译freetype

use*_*546 2 freetype

在 Ubuntu Linux 86-64 上尝试编译 freetype 2.6.1 时,我在配置步骤收到以下消息:

/usr/local/include/harfbuzz/hb-common.h:316:29: note: in expansion of macro ‘HB_TAG_MAX’
   _HB_SCRIPT_MAX_VALUE    = HB_TAG_MAX, /*< skip >*/
                             ^
In file included from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/afglobal.h:26:0,
                 from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/afpic.c:23,
                 from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/autofit.c:21:
/home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/hbshim.h:31:19: fatal error: hb-ft.h: No such file or directory
 #include <hb-ft.h>
                   ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?

Iya*_*shi 6

如果您不完全了解自己在做什么并且对所需的构建工具没有太多经验,构建 FreeType 可能会有点麻烦。我也遇到了这个问题,然后......然后获得了构建工具的经验:)

您正在尝试构建具有HarfBuzz支持的FreeType。当然,这需要HarfBuzz。实际上你需要一个支持 FreeType 的 HarfBuzz构建 (-> ) 来构建一个支持 HarfBuzz 的 FreeTypehb-ft.h

以下是我在没有 Harfbuzz 的情况下编译FreeType 的两种简单方法:

通过配置
git clone https://git.savannah.nongnu.org/git/freetype/freetype2.git
cd freetype2
./autogen.sh                   # generates configure
./configure --without-harfbuzz # generates Makefile + deactivates harfbuzz
make                           # compile libs
make install                   # install libs & headers
Run Code Online (Sandbox Code Playgroud) 通过cmake
git clone https://git.savannah.nongnu.org/git/freetype/freetype2.git
cd freetype2
mkdir build && cd build
cmake ..      # generates Makefile + deactivates HarfBuzz if not found
make          # compile libs
make install  # install libs & headers
Run Code Online (Sandbox Code Playgroud)

如果你想要一个支持 HarfBuzz 的 FreeType 构建,你可能想看看这个答案

  • 圣钼。这次真是万分感谢!我用了大约 5 个小时安装了 5 个不同的版本,等等,然后粘了一个 `--without-brotli` 并成功了。我很感谢你。 (2认同)