为啥在 Linux Mint 上构建 gnome-seahorse 失败

Posted

技术标签:

【中文标题】为啥在 Linux Mint 上构建 gnome-seahorse 失败【英文标题】:why does building gnome-seahorse on Linux Mint fail为什么在 Linux Mint 上构建 gnome-seahorse 失败 【发布时间】:2019-11-28 18:35:27 【问题描述】:

我正在运行 Mint 19.2

海马不是我的朋友。默认版本不理解椭圆曲线。 Flaptpack 版本无法生成 ssh 密钥,因为它找不到ssh-keygen。所以我决定去获取我自己的最新稳定版本。我做了一个git clone 并开始了满足依赖关系的meson 构建过程。

meson build 步骤之后,我运行了ninja -C build。 Thar 似乎编译正常,但链接失败:

Compilation succeeded - 2 warning(s)
[150/150] Linking target src/seahorse.
FAILED: src/seahorse 
cc  -o src/seahorse 'src/25a6634@@seahorse@exe/meson-generated_.._.._data_seahorse-resources.c.o' 'src/25a6634@@seahorse@exe/meson-generated_.._seahorse-shell-search-provider-generated.c.o' 'src/25a6634@@seahorse@exe/meson-generated_application.c.o' 'src/25a6634@@seahorse@exe/meson-generated_import-dialog.c.o' 'src/25a6634@@seahorse@exe/meson-generated_key-manager.c.o' 'src/25a6634@@seahorse@exe/meson-generated_main.c.o' 'src/25a6634@@seahorse@exe/meson-generated_search-provider.c.o' 'src/25a6634@@seahorse@exe/meson-generated_sidebar.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group libegg/liblibeggdatetime.a libegg/liblibtreemultidnd.a common/libcommon.a libseahorse/liblibseahorse.a gkr/libseahorse-gkr.a ssh/libseahorse-ssh.a pgp/libseahorse-pgp.a pkcs11/libseahorse-pkcs11.a /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so -Wl,--export-dynamic /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so -pthread /usr/lib/x86_64-linux-gnu/libgtk-3.so /usr/lib/x86_64-linux-gnu/libgdk-3.so /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /usr/lib/x86_64-linux-gnu/libpango-1.0.so /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libcairo-gobject.so /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /usr/lib/x86_64-linux-gnu/libsecret-1.so /usr/lib/x86_64-linux-gnu/libgcr-ui-3.so /usr/lib/x86_64-linux-gnu/libgcr-base-3.so /usr/lib/x86_64-linux-gnu/libgck-1.so /usr/lib/x86_64-linux-gnu/libp11-kit.so /usr/lib/x86_64-linux-gnu/libpwquality.so -lgpgme -lldap -llber /usr/lib/x86_64-linux-gnu/libsoup-2.4.so /usr/lib/x86_64-linux-gnu/libavahi-common.so /usr/lib/x86_64-linux-gnu/libavahi-client.so /usr/lib/x86_64-linux-gnu/libavahi-glib.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/../libegg:$ORIGIN/../common:$ORIGIN/../libseahorse:$ORIGIN/../gkr:$ORIGIN/../ssh:$ORIGIN/../pgp:$ORIGIN/../pkcs11' -Wl,-rpath-link,/home/me/tmp/seahorse/build/libegg -Wl,-rpath-link,/home/me/tmp/seahorse/build/common -Wl,-rpath-link,/home/me/tmp/seahorse/build/libseahorse -Wl,-rpath-link,/home/me/tmp/seahorse/build/gkr -Wl,-rpath-link,/home/me/tmp/seahorse/build/ssh -Wl,-rpath-link,/home/me/tmp/seahorse/build/pgp -Wl,-rpath-link,/home/me/tmp/seahorse/build/pkcs11
pgp/libseahorse-pgp.a(seahorse-gpgme-key-op.c.o): In function `seahorse_gpgme_key_op_make_primary_async':
/home/me/tmp/seahorse/build/../pgp/seahorse-gpgme-key-op.c:1939: undefined reference to `G_SOURCE_FUNC'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

我确定它在某处的路径中缺少一个库。我尝试在 git repo 中提交问题,但无法登录。

【问题讨论】:

【参考方案1】:

G_SOURCE_FUNC 是在 GLib 2.58 中添加的,因此您的本地 GLib 版本可能不够新。

【讨论】:

仅供参考,我在 seahorse 的 meson.build 中添加了 glib 版本检查以防止此类事情发生,所以感谢您指出这种不理想的情况 :-)

以上是关于为啥在 Linux Mint 上构建 gnome-seahorse 失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个问题发生在我的 linux mint 上的 pgadmin4 上

在 Ubuntu 和 Linux Mint 上安装 Terminator 0.98

在 mint-15 linux 上显示来自 python 的 .png 图像

Mate Linux 桌面的什么受GNOME 2 粉丝喜欢 ?

Linux Mint x64:Qt 5.3.1 插件部署:不兼容的 qt 库

在Linux Mint 19 / Linux Mint 18上安装VirtualBox 6.0 / 5.2