问题描述
编辑 这个问题可能不再与我相关,因为我已经意识到我根本不需要构建 pango(见下面的评论)。但是,我将其搁置一旁,因为这是一次真正的构建失败,并且可能与其他人有关。
我在尝试构建最新版本的 librsvg 时陷入了困境。我的本地 Fedora 33 系统具有 librsvg2-2.50.3-1 并生成良好的图像,但生产服务器 Centos 7.9 具有 2.40.20-1 并且没有正确使用位图模式填充弯曲路径。无论如何,我正在尝试在 Centos 7.9 生产服务器上构建这些软件包的较新版本,首先在本地 VM 上使用新安装的 Centos 7.9 来获得基本工作。环境:
- gcc 4.8.5-44
- 介子 0.57.1
- 忍者 1.10.0
- 安装了 yum 组“开发工具”并设置了用于货物和锈蚀的 EPEL 存储库。
我已经到了需要更新版本的 pango 的地步,所以从 https://download.gnome.org/sources/pango/1.48/ 获取 pango-1.48.2 src 并尝试构建它。我以前没有使用过 meson 或 ninja,但我有 10 年前生锈的旧 Unix 构建技能,我正试图将其应用于这些新工具。
似乎 pango 会自动检测缺少的库,或者安装的版本不够高,并会下载并构建它们。其中之一是 harfbuzz
,这是失败的:
# /usr/local/bin/meson setup builddir
# /usr/local/bin/meson configure builddir/ -Dprefix=/usr/local
# ninja -C builddir/
../subprojects/harfbuzz/src/hb.hh:450:1: warning: identifier 'static_assert' is a keyword in C++11 [-Wc++0x-compat]
后来:
./subprojects/harfbuss/src/hb.hh:450:15: error: expected constructor,destructor,or type conversion before '(' token
static_assert ((sizeof (int8_t) == 1),"");
看起来我需要指定 c++11 作为语言,但是在 subprojects/harfbuzz/meson.build
中它看起来像是启用了:
default_options: [
... skip ...
'cpp_std=c++11'
(见https://github.com/harfbuzz/harfbuzz/blob/master/meson.build)
我在 gists 中放置了一些更完整的输出(对于 stackoverflow 来说太长了,它拒绝了我的帖子),首先来自 meson setup
,它检测到我的 harfbuzz 库版本不够,所以它下载(我认为从 subprojects/harfbuzz.wrap
) 的外观来看是 github master:
https://gist.github.com/neekfenwick/836682eaff7f9e3dbbe62664a8e44ef6
构建步骤的输出......c++11的东西很早就开始了,例如warning: identifier ‘static_assert’ is a keyword in C++11
:
https://gist.github.com/neekfenwick/4581c5f83d4319bf1f011da0012a7dfd
我想我可以 cd subprojects/harfbuzz
并重试构建命令来测试构建整个 pango 构建的一部分,但是没有 Makefile 或配置脚本,就好像没有运行 autogen.sh
一样。但是,如果我在那里充电并尽我所知运行构建,它会起作用:
$ cd subprojects/harfbuzz
$ ./autogen.sh
$ ./configure --prefix=/usr/local
$ make
成功。关于 ninja 如何使用 pango 配置构建它的一些东西被破坏了。
harfbuzz 的配置命令确实输出了以下有趣的行:
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=gnu++11... yes
然而,简单地运行 make
就成功了,所以 harfbuzz 似乎在本地构建中打开了所需的 c++11 标志,为什么从封闭的 pango 构建过程构建时会失败?
接下来我应该去哪里探索以推进这项工作?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)