在 CentOS 5 上安装 harfbuzz 1.0.1

installing harfbuzz 1.0.1 on CentOS 5

我正在尝试在没有 sudo 访问权限的 CentOS 5 机器上安装 harfbuzz-1.0.1,因此需要安装到非标准位置。我已经下载并解压了源代码,并在我的 $PKG_CONFIG_PATH 中添加了我认为是相关的依赖项。这些软件包包括:

检查“$PKG_CONFIG_PATH”是否正确:

$pkg-config --modversion freetype2
9.22.3
$pkg-config --modversion icu-uc
55.1

在解压的源目录中,我运行:

$ ./configure --prefix=/some/custom/path
# produces lots of output, but summary here
Build configuration:

Unicode callbacks (you want at least one):
    Glib:           true
    ICU:            true
    UCDN:           false

Font callbacks (the more the better):
    FreeType:       false

Tools used for command-line utilities:
    Cairo:          true
    Fontconfig:     true

Additional shapers (the more the better):
    Graphite2:      false

Platform shapers (not normally needed):
    CoreText:       false
    Uniscribe:      false

Other features:
    Documentation:      no
    GObject bindings:   false
    Introspection:      false

但是,make 失败并出现以下错误:

In file included from hb-glib.cc:31:0:
hb-glib.h:50:22: error: 'GBytes' was not declared in this scope
 hb_glib_blob_create (GBytes *gbytes);
                      ^
hb-glib.h:50:30: error: 'gbytes' was not declared in this scope
 hb_glib_blob_create (GBytes *gbytes);
                              ^
hb-glib.cc:389:22: error: redefinition of 'hb_blob_t* hb_glib_blob_create'
 hb_glib_blob_create (GBytes *gbytes)
                      ^
In file included from hb-glib.cc:31:0:
hb-glib.h:50:1: error: 'hb_blob_t* hb_glib_blob_create' previously defined here
 hb_glib_blob_create (GBytes *gbytes);
 ^
hb-glib.cc:389:22: error: 'GBytes' was not declared in this scope
 hb_glib_blob_create (GBytes *gbytes)
                      ^
hb-glib.cc:389:30: error: 'gbytes' was not declared in this scope
 hb_glib_blob_create (GBytes *gbytes)
                              ^
make[4]: *** [libharfbuzz_la-hb-glib.lo] Error 1

我无法从 config.log 文件中确定任何内容,但我又不确定要寻找什么。我猜想也许某处存在未满足的依赖关系,但此时我有点不知所措。任何帮助将不胜感激,如果需要,我很乐意提供更多信息。非常感谢。

如果有帮助,请点击这里 the full config.log

在 glib 2.32 中添加了 glib GBytes type

glib 的版本是 CentOS 5 是 2.12,很多旧。

harfbuzz 配置设置应该检查 glib 的兼容版本,而不是在失败之前进行编译。这是他们的 "bug"。

您可以使用旧版本的 harfbuzz,它可以使用 CentOS 5 附带的 glib 版本,或者您也可以构建 "install" 您自己的 glib 副本。