nebuchadnezzar打包后运行时提示找不到符号(已解决)

我正在为一个flutter开发的应用编写pkgbuild。但是运行时提示动态库中找不到符号。

[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Invalid argument(s): Failed to load dynamic library 'libvodozemac_bindings_dart.so': /opt/nebuchadnezzar/lib/libvodozemac_bindings_dart.so: undefined symbol: Dart_CurrentIsolate_DL

如果在源码下使用fvm flutter run -d linux运行(使用同一个版本的flutter),则不会提示。

pkgbuild的内容是:

# Maintainer: Dee.H.Y <dongfengweixiao at hotmail dot com>
# This PKGBUILD tracks the latest development version of nebuchadnezzar.
# Before executing makepkg, you can set FVM_CACHE_PATH to $HOME/fvm or the path specified by the cachePath field in the $HOME/.config/fvm/.fvmrc file.

## options
: ${_install_path:=opt}

_pkgname="nebuchadnezzar"
pkgname="$_pkgname-git"
pkgver=r156.5794abd
pkgrel=1
pkgdesc="Matrix Client written in Dart & Flutter for Linux"
url="https://github.com/ubuntu-flutter-community/nebuchadnezzar"
license=('AGPL-3.0-or-later')
arch=('x86_64' 'aarch64')
depends=(
  glibc
  glib2
  mpv
  cairo
  gdk-pixbuf2
  pango
  libepoxy
  fontconfig
  at-spi2-core
  gtk3
  gcc-libs
  alsa-lib
  libnotify
)
makedepends=(
  'clang'
  'cmake'
  'fvm' #AUR
  'git'
  'lld'
  'llvm'
  'ninja'
  'patchelf'
  'rustup'
)
options=('!lto')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
source=(
  "$_pkgname"::"git+$url.git"
  "0001-Use-dynamic-OpenSSL.patch"
)
sha256sums=(
  'SKIP'
  'd5dd1fc8e65dc81fc2f1292ea93d8843c45922e2b988679126b55f171d083882'
)

pkgver() {
  cd "$srcdir/$_pkgname"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
  cd "$srcdir/$_pkgname"
  patch -p1 -i "$srcdir/0001-Use-dynamic-OpenSSL-and-export-symbols.patch"
}

build() {
  export FVM_CACHE_PATH="$SRCDEST/fvm-cache"

  cd "$srcdir/$_pkgname"
  fvm install
  fvm use -f

  fvm flutter --disable-analytics
  fvm flutter --no-version-check pub get
  fvm flutter clean && fvm flutter build linux --release
}

package() {
  if [ $CARCH == "aarch64" ]; then
    FLUTTER_ARCH=arm64
  else
    FLUTTER_ARCH=x64
  fi

  cd "$srcdir/$_pkgname/build/linux/$FLUTTER_ARCH/release/bundle"

  install -Dm755 "$_pkgname" "$pkgdir/$_install_path/$_pkgname/$_pkgname"
  cp --reflink=auto -r lib/ "$pkgdir/$_install_path/$_pkgname/"
  cp --reflink=auto -r data/ "$pkgdir/$_install_path/$_pkgname/"

  # runpath
  patchelf --set-rpath '$ORIGIN/lib' "$pkgdir/$_install_path/$_pkgname/$_pkgname"
  for i in "$pkgdir/$_install_path/$_pkgname/lib"/*.so; do
    [ -z "$(patchelf --print-rpath "$i")" ] && continue
    patchelf --set-rpath '$ORIGIN' "$i"
  done

  # symlink
  install -dm755 "${pkgdir}/usr/bin"
  ln -sfr "$pkgdir/$_install_path/$_pkgname/$_pkgname" "$pkgdir/usr/bin/${_pkgname}"

  # icon
  install -Dm644 "$srcdir/$_pkgname/snap/gui/$_pkgname.png" \
    "$pkgdir/usr/share/pixmaps/$_pkgname.png"

  # .desktop file
  install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/$_pkgname.desktop" << END
[Desktop Entry]
Type=Application
Name=Nebuchadnezzar
Comment=$pkgdesc
Exec=$_pkgname %U
Icon=$_pkgname
Terminal=false
Categories=Network;InstantMessaging;Chat;
StartupWMClass=nebuchadnezzar
END

  # license
  install -Dm644 "$srcdir/$_pkgname/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/"

  # permissions
  chmod -R u+rwX,go+rX,go-w "$pkgdir/"
}

补丁是:

From e84f94dcdafe22c80055ddea9d46084c8f7f2aed Mon Sep 17 00:00:00 2001
From: Dee HY <dongfengweixiao@hotmail.com>
Date: Sat, 14 Mar 2026 18:56:11 +0800
Subject: [PATCH] Use dynamic OpenSSL

---
 linux/CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt
index b28f54a..2b5ead6 100644
--- a/linux/CMakeLists.txt
+++ b/linux/CMakeLists.txt
@@ -71,6 +71,9 @@ set_target_properties(${BINARY_NAME}
 )
 
 
+# Use dynamic OpenSSL linking for sqlcipher_flutter_libs
+set(OPENSSL_USE_STATIC_LIBS OFF)
+
 # Generated plugin build rules, which manage building the plugins and adding
 # them to the application.
 include(flutter/generated_plugins.cmake)
-- 
2.53.0

libtree /opt/nebuchadnezzar/nebuchadnezzar
/opt/nebuchadnezzar/nebuchadnezzar
├── libdesktop_webview_window_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ │ ├── libpthread.so.0 [default path]
│ │ ├── libfontconfig.so.1 [default path]
│ │ │ ├── libfreetype.so.6 [default path]
│ │ │ │ ├── libz.so.1 [default path]
│ │ │ │ ├── libbrotlidec.so.1 [default path]
│ │ │ │ │ └── libbrotlicommon.so.1 [default path]
│ │ │ │ ├── libpng16.so.16 [default path]
│ │ │ │ │ └── libz.so.1 [default path]
│ │ │ │ └── libbz2.so.1.0 [default path]
│ │ │ └── libexpat.so.1 [default path]
│ │ ├── libepoxy.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ │ └── libpcre2-8.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ └── libffi.so.8 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libmount.so.1 [default path]
│ │ │ │ └── libblkid.so.1 [default path]
│ │ │ ├── libz.so.1 [default path]
│ │ │ ├── libgmodule-2.0.so.0 [default path]
│ │ │ │ └── libglib-2.0.so.0 [default path]
│ │ │ └── libgobject-2.0.so.0 [default path]
│ │ ├── libcairo.so.2 [default path]
│ │ │ ├── libpixman-1.so.0 [default path]
│ │ │ ├── libxcb-shm.so.0 [default path]
│ │ │ │ └── libxcb.so.1 [default path]
│ │ │ │ ├── libXau.so.6 [default path]
│ │ │ │ └── libXdmcp.so.6 [default path]
│ │ │ ├── libxcb-render.so.0 [default path]
│ │ │ │ └── libxcb.so.1 [default path]
│ │ │ ├── libxcb.so.1 [default path]
│ │ │ ├── libXrender.so.1 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ │ └── libxcb.so.1 [default path]
│ │ │ ├── libXext.so.6 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ ├── libX11.so.6 [default path]
│ │ │ ├── libfreetype.so.6 [default path]
│ │ │ ├── libfontconfig.so.1 [default path]
│ │ │ ├── libpng16.so.16 [default path]
│ │ │ └── libz.so.1 [default path]
│ │ ├── libatk-1.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ └── libgobject-2.0.so.0 [default path]
│ │ ├── libpango-1.0.so.0 [default path]
│ │ │ ├── libharfbuzz.so.0 [default path]
│ │ │ │ ├── libgraphite2.so.3 [default path]
│ │ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ │ └── libfreetype.so.6 [default path]
│ │ │ ├── libthai.so.0 [default path]
│ │ │ │ └── libdatrie.so.1 [default path]
│ │ │ ├── libfribidi.so.0 [default path]
│ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libglib-2.0.so.0 [default path]
│ │ ├── libpangocairo-1.0.so.0 [default path]
│ │ │ ├── libpango-1.0.so.0 [default path]
│ │ │ ├── libfontconfig.so.1 [default path]
│ │ │ ├── libharfbuzz.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libcairo.so.2 [default path]
│ │ │ └── libpangoft2-1.0.so.0 [default path]
│ │ │ ├── libpango-1.0.so.0 [default path]
│ │ │ ├── libfreetype.so.6 [default path]
│ │ │ ├── libfontconfig.so.1 [default path]
│ │ │ ├── libharfbuzz.so.0 [default path]
│ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libglib-2.0.so.0 [default path]
│ │ ├── libgdk-3.so.0 [default path]
│ │ │ ├── libXinerama.so.1 [default path]
│ │ │ │ ├── libXext.so.6 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ ├── libXrandr.so.2 [default path]
│ │ │ │ ├── libXext.so.6 [default path]
│ │ │ │ ├── libX11.so.6 [default path]
│ │ │ │ └── libXrender.so.1 [default path]
│ │ │ ├── libXcomposite.so.1 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ ├── libXfixes.so.3 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ ├── libXdamage.so.1 [default path]
│ │ │ │ └── libX11.so.6 [default path]
│ │ │ ├── libXcursor.so.1 [default path]
│ │ │ │ ├── libXrender.so.1 [default path]
│ │ │ │ ├── libX11.so.6 [default path]
│ │ │ │ └── libXfixes.so.3 [default path]
│ │ │ ├── libXext.so.6 [default path]
│ │ │ ├── libXi.so.6 [default path]
│ │ │ │ ├── libX11.so.6 [default path]
│ │ │ │ └── libXext.so.6 [default path]
│ │ │ ├── libX11.so.6 [default path]
│ │ │ ├── libwayland-egl.so.1 [default path]
│ │ │ ├── libwayland-cursor.so.0 [default path]
│ │ │ │ └── libwayland-client.so.0 [default path]
│ │ │ │ └── libffi.so.8 [default path]
│ │ │ ├── libwayland-client.so.0 [default path]
│ │ │ ├── libxkbcommon.so.0 [default path]
│ │ │ ├── libpangocairo-1.0.so.0 [default path]
│ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libfontconfig.so.1 [default path]
│ │ │ ├── libepoxy.so.0 [default path]
│ │ │ ├── libcairo-gobject.so.2 [default path]
│ │ │ │ ├── libcairo.so.2 [default path]
│ │ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ │ └── libglib-2.0.so.0 [default path]
│ │ │ ├── libfribidi.so.0 [default path]
│ │ │ ├── libpango-1.0.so.0 [default path]
│ │ │ ├── libcairo.so.2 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libgdk_pixbuf-2.0.so.0 [default path]
│ │ │ ├── libglycin-2.so.0 [default path]
│ │ │ │ ├── liblcms2.so.2 [default path]
│ │ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ │ ├── libseccomp.so.2 [default path]
│ │ │ │ └── libfontconfig.so.1 [default path]
│ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libgmodule-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libglib-2.0.so.0 [default path]
│ │ └── libgtk-3.so.0 [default path]
│ │ ├── libgdk-3.so.0 [default path]
│ │ ├── libtinysparql-3.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libxml2.so.16 [default path]
│ │ │ │ ├── libicuuc.so.78 [default path]
│ │ │ │ │ └── libicudata.so.78 [default path]
│ │ │ │ └── libz.so.1 [default path]
│ │ │ ├── libjson-glib-1.0.so.0 [default path]
│ │ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ │ └── libgobject-2.0.so.0 [default path]
│ │ │ ├── libgmodule-2.0.so.0 [default path]
│ │ │ ├── libsqlite3.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libgio-2.0.so.0 [default path]
│ │ ├── libcloudproviders.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libgio-2.0.so.0 [default path]
│ │ ├── libatk-bridge-2.0.so.0 [default path]
│ │ │ ├── libatspi.so.0 [default path]
│ │ │ │ ├── libdbus-1.so.3 [default path]
│ │ │ │ │ └── libsystemd.so.0 [default path]
│ │ │ │ ├── libXi.so.6 [default path]
│ │ │ │ ├── libX11.so.6 [default path]
│ │ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ │ └── libgobject-2.0.so.0 [default path]
│ │ │ ├── libgio-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ ├── libdbus-1.so.3 [default path]
│ │ │ └── libatk-1.0.so.0 [default path]
│ │ ├── libX11.so.6 [default path]
│ │ ├── libXi.so.6 [default path]
│ │ ├── libXfixes.so.3 [default path]
│ │ ├── libepoxy.so.0 [default path]
│ │ ├── libatk-1.0.so.0 [default path]
│ │ ├── libgdk_pixbuf-2.0.so.0 [default path]
│ │ ├── libcairo-gobject.so.2 [default path]
│ │ ├── libfribidi.so.0 [default path]
│ │ ├── libfontconfig.so.1 [default path]
│ │ ├── libpangoft2-1.0.so.0 [default path]
│ │ ├── libharfbuzz.so.0 [default path]
│ │ ├── libcairo.so.2 [default path]
│ │ ├── libpango-1.0.so.0 [default path]
│ │ ├── libpangocairo-1.0.so.0 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ └── libgmodule-2.0.so.0 [default path]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libjavascriptcoregtk-4.1.so.0 [default path]
│ │ ├── libatomic.so.1 [default path]
│ │ ├── libsystemd.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ ├── libicuuc.so.78 [default path]
│ │ ├── libicui18n.so.78 [default path]
│ │ │ └── libicuuc.so.78 [default path]
│ │ └── libglib-2.0.so.0 [default path]
│ ├── libgtk-3.so.0 [default path]
│ └── libwebkit2gtk-4.1.so.0 [default path]
│ ├── libepoxy.so.0 [default path]
│ ├── libgbm.so.1 [default path]
│ │ ├── libdrm.so.2 [default path]
│ │ └── libexpat.so.1 [default path]
│ ├── libseccomp.so.2 [default path]
│ ├── libmanette-0.2.so.0 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ ├── libgudev-1.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libudev.so.1 [default path]
│ │ │ └── libgobject-2.0.so.0 [default path]
│ │ ├── libevdev.so.2 [default path]
│ │ ├── libhidapi-hidraw.so.0 [default path]
│ │ │ └── libudev.so.1 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ └── libgobject-2.0.so.0 [default path]
│ ├── libdrm.so.2 [default path]
│ ├── libwayland-client.so.0 [default path]
│ ├── libwayland-server.so.0 [default path]
│ │ └── libffi.so.8 [default path]
│ ├── libX11.so.6 [default path]
│ ├── libhyphen.so.0 [default path]
│ ├── libtasn1.so.6 [default path]
│ ├── libsecret-1.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libtss2-tctildr.so.0 [default path]
│ │ ├── libtss2-rc.so.0 [default path]
│ │ ├── libtss2-mu.so.0 [default path]
│ │ ├── libtss2-esys.so.0 [default path]
│ │ │ ├── libcrypto.so.3 [default path]
│ │ │ ├── libtss2-mu.so.0 [default path]
│ │ │ └── libtss2-sys.so.1 [default path]
│ │ │ └── libtss2-mu.so.0 [default path]
│ │ ├── libgcrypt.so.20 [default path]
│ │ │ └── libgpg-error.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ └── libgio-2.0.so.0 [default path]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgmodule-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ ├── libenchant-2.so.2 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ └── libgmodule-2.0.so.0 [default path]
│ ├── libharfbuzz-icu.so.0 [default path]
│ │ ├── libharfbuzz.so.0 [default path]
│ │ └── libicuuc.so.78 [default path]
│ ├── libsoup-3.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libnghttp2.so.14 [default path]
│ │ ├── libz.so.1 [default path]
│ │ ├── libgssapi_krb5.so.2 [default path]
│ │ │ ├── libkrb5.so.3 [default path]
│ │ │ │ ├── libk5crypto.so.3 [default path]
│ │ │ │ │ ├── libkrb5support.so.0 [default path]
│ │ │ │ │ │ ├── libkeyutils.so.1 [default path]
│ │ │ │ │ │ └── libresolv.so.2 [default path]
│ │ │ │ │ ├── libresolv.so.2 [default path]
│ │ │ │ │ └── libkeyutils.so.1 [default path]
│ │ │ │ ├── libresolv.so.2 [default path]
│ │ │ │ ├── libkeyutils.so.1 [default path]
│ │ │ │ ├── libkrb5support.so.0 [default path]
│ │ │ │ └── libcom_err.so.2 [default path]
│ │ │ ├── libresolv.so.2 [default path]
│ │ │ ├── libkeyutils.so.1 [default path]
│ │ │ ├── libkrb5support.so.0 [default path]
│ │ │ ├── libcom_err.so.2 [default path]
│ │ │ └── libk5crypto.so.3 [default path]
│ │ ├── libbrotlidec.so.1 [default path]
│ │ ├── libpsl.so.5 [default path]
│ │ │ ├── libunistring.so.5 [default path]
│ │ │ └── libidn2.so.0 [default path]
│ │ │ └── libunistring.so.5 [default path]
│ │ ├── libsqlite3.so.0 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ └── libgobject-2.0.so.0 [default path]
│ ├── libavif.so.16 [default path]
│ │ ├── libyuv.so [default path]
│ │ │ └── libjpeg.so.8 [default path]
│ │ ├── libaom.so.3 [default path]
│ │ ├── libSvtAv1Enc.so.4 [default path]
│ │ ├── librav1e.so.0.8 [default path]
│ │ ├── libdav1d.so.7 [default path]
│ │ └── libsharpyuv.so.0 [default path]
│ ├── libjxl.so.0.11 [default path]
│ │ ├── libjxl_cms.so.0.11 [default path]
│ │ │ └── libhwy.so.1 [default path]
│ │ ├── libbrotlienc.so.1 [default path]
│ │ │ └── libbrotlicommon.so.1 [default path]
│ │ ├── libbrotlidec.so.1 [default path]
│ │ └── libhwy.so.1 [default path]
│ ├── libwebp.so.7 [default path]
│ │ └── libsharpyuv.so.0 [default path]
│ ├── libwebpdemux.so.2 [default path]
│ │ └── libwebp.so.7 [default path]
│ ├── libgstfft-1.0.so.0 [default path]
│ │ └── libglib-2.0.so.0 [default path]
│ ├── libgstgl-1.0.so.0 [default path]
│ │ ├── libgstbase-1.0.so.0 [default path]
│ │ │ ├── libgstreamer-1.0.so.0 [default path]
│ │ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ │ ├── libunwind.so.8 [default path]
│ │ │ │ │ └── liblzma.so.5 [default path]
│ │ │ │ ├── libdw.so.1 [default path]
│ │ │ │ │ ├── libelf.so.1 [default path]
│ │ │ │ │ │ ├── libz.so.1 [default path]
│ │ │ │ │ │ └── libzstd.so.1 [default path]
│ │ │ │ │ ├── libbz2.so.1.0 [default path]
│ │ │ │ │ ├── liblzma.so.5 [default path]
│ │ │ │ │ ├── libzstd.so.1 [default path]
│ │ │ │ │ └── libz.so.1 [default path]
│ │ │ │ ├── libgmodule-2.0.so.0 [default path]
│ │ │ │ └── libglib-2.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ └── libglib-2.0.so.0 [default path]
│ │ ├── libgbm.so.1 [default path]
│ │ ├── libdrm.so.2 [default path]
│ │ ├── libgudev-1.0.so.0 [default path]
│ │ ├── libxcb.so.1 [default path]
│ │ ├── libX11-xcb.so.1 [default path]
│ │ ├── libX11.so.6 [default path]
│ │ ├── libwayland-egl.so.1 [default path]
│ │ ├── libwayland-cursor.so.0 [default path]
│ │ ├── libwayland-client.so.0 [default path]
│ │ ├── libGLX.so.0 [default path]
│ │ │ ├── libGLdispatch.so.0 [default path]
│ │ │ └── libX11.so.6 [default path]
│ │ ├── libEGL.so.1 [default path]
│ │ │ └── libGLdispatch.so.0 [default path]
│ │ ├── libgmodule-2.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libgstallocators-1.0.so.0 [default path]
│ │ │ ├── libgstreamer-1.0.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ └── libdrm.so.2 [default path]
│ │ ├── libgstvideo-1.0.so.0 [default path]
│ │ │ ├── libgstallocators-1.0.so.0 [default path]
│ │ │ ├── liborc-0.4.so.0 [default path]
│ │ │ ├── libgobject-2.0.so.0 [default path]
│ │ │ ├── libglib-2.0.so.0 [default path]
│ │ │ ├── libgstbase-1.0.so.0 [default path]
│ │ │ └── libgstreamer-1.0.so.0 [default path]
│ │ └── libgstreamer-1.0.so.0 [default path]
│ ├── libgstvideo-1.0.so.0 [default path]
│ ├── libgsttag-1.0.so.0 [default path]
│ │ ├── libgstbase-1.0.so.0 [default path]
│ │ ├── libz.so.1 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ └── libgstreamer-1.0.so.0 [default path]
│ ├── libgstaudio-1.0.so.0 [default path]
│ │ ├── libgstbase-1.0.so.0 [default path]
│ │ ├── liborc-0.4.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libgsttag-1.0.so.0 [default path]
│ │ └── libgstreamer-1.0.so.0 [default path]
│ ├── libgstpbutils-1.0.so.0 [default path]
│ │ ├── libgstvideo-1.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libgsttag-1.0.so.0 [default path]
│ │ ├── libgstaudio-1.0.so.0 [default path]
│ │ ├── libgstbase-1.0.so.0 [default path]
│ │ └── libgstreamer-1.0.so.0 [default path]
│ ├── libgstreamer-1.0.so.0 [default path]
│ ├── libgstbase-1.0.so.0 [default path]
│ ├── libgstapp-1.0.so.0 [default path]
│ │ ├── libgstbase-1.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ └── libgstreamer-1.0.so.0 [default path]
│ ├── libgstallocators-1.0.so.0 [default path]
│ ├── libgcrypt.so.20 [default path]
│ ├── libwoff2dec.so.1.0.2 [default path]
│ │ ├── libwoff2common.so.1.0.2 [default path]
│ │ └── libbrotlidec.so.1 [default path]
│ ├── liblcms2.so.2 [default path]
│ ├── libxslt.so.1 [default path]
│ │ └── libxml2.so.16 [default path]
│ ├── libsqlite3.so.0 [default path]
│ ├── libxml2.so.16 [default path]
│ ├── libcairo.so.2 [default path]
│ ├── libatk-1.0.so.0 [default path]
│ ├── libpango-1.0.so.0 [default path]
│ ├── libz.so.1 [default path]
│ ├── libgdk-3.so.0 [default path]
│ ├── libgtk-3.so.0 [default path]
│ ├── libicuuc.so.78 [default path]
│ ├── libpng16.so.16 [default path]
│ ├── libjpeg.so.8 [default path]
│ ├── libharfbuzz.so.0 [default path]
│ ├── libsystemd.so.0 [default path]
│ ├── libicui18n.so.78 [default path]
│ ├── libjavascriptcoregtk-4.1.so.0 [default path]
│ ├── libexpat.so.1 [default path]
│ ├── libwebpmux.so.3 [default path]
│ │ └── libwebp.so.7 [default path]
│ ├── libfontconfig.so.1 [default path]
│ └── libfreetype.so.6 [default path]
├── libdynamic_color_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libemoji_picker_flutter_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libfile_selector_linux_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libflutter_secure_storage_linux_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libsecret-1.so.0 [default path]
├── libgtk_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libflutter_linux_gtk.so [runpath]
├── libyaru_window_linux_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgdk-3.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libxdg_icons_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libwindow_to_front_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libwindow_manager_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgdk-3.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── liburl_launcher_linux_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libsystem_theme_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libgtk-3.so.0 [default path]
├── libsuper_native_extensions_plugin.so [runpath]
│ ├── /opt/nebuchadnezzar/lib/libsuper_native_extensions.so [runpath]
│ │ ├── libgtk-3.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libcairo.so.2 [default path]
│ │ └── libgdk-3.so.0 [default path]
│ ├── libglib-2.0.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libsqlcipher_flutter_libs_plugin.so [runpath]
│ └── libcrypto.so.3 [default path]
├── libscreen_retriever_linux_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libgdk-3.so.0 [default path]
├── librecord_linux_plugin.so [runpath]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libglib-2.0.so.0 [default path]
├── libopen_folder_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libmedia_kit_video_plugin.so [runpath]
│ ├── libmpv.so.2 [runpath]
│ │ ├── libva-wayland.so.2 [default path]
│ │ │ ├── libva.so.2 [default path]
│ │ │ ├── libwayland-client.so.0 [default path]
│ │ │ └── libdrm.so.2 [default path]
│ │ ├── libEGL.so.1 [default path]
│ │ ├── libXv.so.1 [default path]
│ │ │ ├── libX11.so.6 [default path]
│ │ │ └── libXext.so.6 [default path]
│ │ ├── libXrandr.so.2 [default path]
│ │ ├── libXext.so.6 [default path]
│ │ ├── libXss.so.1 [default path]
│ │ │ ├── libXext.so.6 [default path]
│ │ │ └── libX11.so.6 [default path]
│ │ ├── libxkbcommon.so.0 [default path]
│ │ ├── libwayland-cursor.so.0 [default path]
│ │ ├── libwayland-client.so.0 [default path]
│ │ ├── libgbm.so.1 [default path]
│ │ ├── libpulse.so.0 [default path]
│ │ │ ├── libpulsecommon-17.0.so [runpath]
│ │ │ │ ├── libasyncns.so.0 [default path]
│ │ │ │ ├── libsystemd.so.0 [default path]
│ │ │ │ ├── libxcb.so.1 [default path]
│ │ │ │ ├── libdbus-1.so.3 [default path]
│ │ │ │ └── libsndfile.so.1 [default path]
│ │ │ │ ├── libvorbis.so.0 [default path]
│ │ │ │ │ └── libogg.so.0 [default path]
│ │ │ │ ├── libmp3lame.so.0 [default path]
│ │ │ │ │ └── libmpg123.so.0 [default path]
│ │ │ │ ├── libmpg123.so.0 [default path]
│ │ │ │ ├── libopus.so.0 [default path]
│ │ │ │ ├── libFLAC.so.14 [default path]
│ │ │ │ │ └── libogg.so.0 [default path]
│ │ │ │ ├── libvorbisenc.so.2 [default path]
│ │ │ │ │ └── libvorbis.so.0 [default path]
│ │ │ │ └── libogg.so.0 [default path]
│ │ │ └── libdbus-1.so.3 [default path]
│ │ ├── libXfixes.so.3 [default path]
│ │ ├── libxcb.so.1 [default path]
│ │ ├── libasound.so.2 [default path]
│ │ ├── libarchive.so.13 [default path]
│ │ │ ├── libcrypto.so.3 [default path]
│ │ │ ├── libxml2.so.16 [default path]
│ │ │ ├── liblzma.so.5 [default path]
│ │ │ ├── libz.so.1 [default path]
│ │ │ ├── libbz2.so.1.0 [default path]
│ │ │ ├── liblz4.so.1 [default path]
│ │ │ ├── libzstd.so.1 [default path]
│ │ │ └── libacl.so.1 [default path]
│ │ ├── liblcms2.so.2 [default path]
│ │ ├── libunwind.so.8 [default path]
│ │ ├── libgnutls.so.30 [default path]
│ │ │ ├── libleancrypto.so.1 [default path]
│ │ │ ├── libgmp.so.10 [default path]
│ │ │ ├── libnettle.so.8 [default path]
│ │ │ ├── libhogweed.so.6 [default path]
│ │ │ │ ├── libnettle.so.8 [default path]
│ │ │ │ └── libgmp.so.10 [default path]
│ │ │ ├── libtasn1.so.6 [default path]
│ │ │ ├── libunistring.so.5 [default path]
│ │ │ ├── libidn2.so.0 [default path]
│ │ │ └── libp11-kit.so.0 [default path]
│ │ │ └── libffi.so.8 [default path]
│ │ ├── libX11.so.6 [default path]
│ │ ├── libva.so.2 [default path]
│ │ ├── libdrm.so.2 [default path]
│ │ ├── libvdpau.so.1 [default path]
│ │ │ ├── libX11.so.6 [default path]
│ │ │ └── libXext.so.6 [default path]
│ │ ├── libva-x11.so.2 [default path]
│ │ │ ├── libva.so.2 [default path]
│ │ │ ├── libxcb-dri3.so.0 [default path]
│ │ │ │ └── libxcb.so.1 [default path]
│ │ │ ├── libxcb.so.1 [default path]
│ │ │ ├── libX11-xcb.so.1 [default path]
│ │ │ ├── libXfixes.so.3 [default path]
│ │ │ ├── libXext.so.6 [default path]
│ │ │ ├── libX11.so.6 [default path]
│ │ │ └── libdrm.so.2 [default path]
│ │ ├── libva-drm.so.2 [default path]
│ │ │ ├── libva.so.2 [default path]
│ │ │ └── libdrm.so.2 [default path]
│ │ ├── libz.so.1 [default path]
│ │ ├── liblzma.so.5 [default path]
│ │ ├── libfreetype.so.6 [default path]
│ │ ├── libfribidi.so.0 [default path]
│ │ ├── libharfbuzz.so.0 [default path]
│ │ ├── libfontconfig.so.1 [default path]
│ │ └── libwayland-egl.so.1 [default path]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libepoxy.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ ├── libgdk-3.so.0 [default path]
│ ├── libgtk-3.so.0 [default path]
│ └── libglib-2.0.so.0 [default path]
├── libmedia_kit_libs_linux_plugin.so [runpath]
├── liblocal_notifier_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgobject-2.0.so.0 [default path]
│ └── libnotify.so.4 [default path]
│ ├── libgdk_pixbuf-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ ├── libglib-2.0.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libirondash_engine_context_plugin.so [runpath]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libhandy_window_plugin.so [runpath]
│ ├── libhandy_flutter.so [runpath]
│ │ ├── libgtk-3.so.0 [default path]
│ │ ├── libglib-2.0.so.0 [default path]
│ │ ├── libgobject-2.0.so.0 [default path]
│ │ ├── libgio-2.0.so.0 [default path]
│ │ ├── libcairo.so.2 [default path]
│ │ ├── libpango-1.0.so.0 [default path]
│ │ ├── libatk-1.0.so.0 [default path]
│ │ ├── libgdk_pixbuf-2.0.so.0 [default path]
│ │ └── libgdk-3.so.0 [default path]
│ ├── libflutter_linux_gtk.so [runpath]
│ ├── libglib-2.0.so.0 [default path]
│ ├── libgio-2.0.so.0 [default path]
│ ├── libgdk-3.so.0 [default path]
│ ├── libgtk-3.so.0 [default path]
│ └── libgobject-2.0.so.0 [default path]
├── libglib-2.0.so.0 [default path]
├── libgtk-3.so.0 [default path]
├── libgdk-3.so.0 [default path]
├── libgio-2.0.so.0 [default path]
└── libgobject-2.0.so.0 [default path]

问题太长了,懒得看了。我把你的问题拿去给DeepSeek跑了一下,输出结果如下:

根据你提供的错误信息和PKGBUILD内容,问题出现在 libvodozemac_bindings_dart.so 动态库中找不到 Dart_CurrentIsolate_DL 符号。这是一个典型的Flutter/Dart插件链接问题。

问题分析

Dart_CurrentIsolate_DL 是Dart VM的API符号,通常由Flutter引擎提供。问题可能出现在:

  1. Flutter引擎版本不匹配:构建时使用的Flutter引擎版本与运行时环境不匹配
  2. 符号导出问题:Flutter引擎的符号没有被正确导出或链接
  3. Rust FFI绑定问题vodozemac_bindings_dart 是一个Rust库,可能链接了错误的Dart API

解决方案

方案1:检查Flutter引擎链接

修改PKGBUILD的build部分,确保正确链接Flutter引擎:

build() {
  export FVM_CACHE_PATH="$SRCDEST/fvm-cache"
  
  # 设置Flutter环境变量
  export FLUTTER_ROOT="$FVM_CACHE_PATH/versions/$(cat .fvm/flutter_sdk_version)"
  export DART_SDK="$FLUTTER_ROOT/bin/cache/dart-sdk"
  
  cd "$srcdir/$_pkgname"
  fvm install
  fvm use -f

  # 清理并重新构建
  fvm flutter --disable-analytics clean
  fvm flutter --no-version-check pub get
  
  # 添加详细构建输出
  fvm flutter build linux --release --verbose
  
  # 检查符号
  echo "Checking symbols in libvodozemac_bindings_dart.so..."
  readelf -Ws build/linux/x64/release/bundle/lib/libvodozemac_bindings_dart.so | grep Dart
  ldd build/linux/x64/release/bundle/lib/libvodozemac_bindings_dart.so
}

方案2:添加缺失的依赖

在depends数组中添加Flutter/Dart运行时依赖:

depends=(
  glibc
  glib2
  mpv
  cairo
  gdk-pixbuf2
  pango
  libepoxy
  fontconfig
  at-spi2-core
  gtk3
  gcc-libs
  alsa-lib
  libnotify
  # 添加以下依赖
  'dart'  # 从AUR安装
  'flutter-engine'  # 可能需要从AUR安装
)

方案3:修复符号链接问题

在package()函数中添加符号检查和处理:

package() {
  # ... 现有代码 ...

  # 检查并修复libvodozemac_bindings_dart.so
  VODOZEMAC_SO="$pkgdir/$_install_path/$_pkgname/lib/libvodozemac_bindings_dart.so"
  if [ -f "$VODOZEMAC_SO" ]; then
    echo "Checking $VODOZEMAC_SO for missing symbols..."
    
    # 检查缺失的符号
    if ! nm -D "$VODOZEMAC_SO" | grep -q "Dart_CurrentIsolate_DL"; then
      echo "Warning: Dart_CurrentIsolate_DL symbol not found in $VODOZEMAC_SO"
      
      # 尝试从Flutter引擎链接
      FLUTTER_ENGINE_SO="$srcdir/$_pkgname/build/linux/x64/release/bundle/lib/libflutter_linux_gtk.so"
      if [ -f "$FLUTTER_ENGINE_SO" ]; then
        echo "Checking Flutter engine for symbol..."
        nm -D "$FLUTTER_ENGINE_SO" | grep Dart_CurrentIsolate_DL
      fi
    fi
    
    # 确保正确的rpath
    patchelf --set-rpath '$ORIGIN:$ORIGIN/../lib' "$VODOZEMAC_SO"
  fi
  
  # ... 其余代码 ...
}

方案4:修改构建配置

创建一个新的补丁文件来修复构建配置:

0002-Fix-dart-symbols.patch:

From: Your Name <your.email@example.com>
Date: $(date +%Y-%m-%d)
Subject: Fix Dart symbol linking for vodozemac

---
 vodozemac/bindings/dart/CMakeLists.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/vodozemac/bindings/dart/CMakeLists.txt b/vodozemac/bindings/dart/CMakeLists.txt
index xxxxxxx..xxxxxxx 100644
--- a/vodozemac/bindings/dart/CMakeLists.txt
+++ b/vodozemac/bindings/dart/CMakeLists.txt
@@ -1,5 +1,13 @@
 cmake_minimum_required(VERSION 3.10)
 project(vodozemac_bindings_dart)
 
+# 添加Dart SDK路径
+find_package(Dart REQUIRED)
+include_directories(${DART_INCLUDE_DIRS})
+
+# 显式链接Dart库
+find_library(DART_LIB dart)
+target_link_libraries(vodozemac_bindings_dart ${DART_LIB})
+
 # 现有的构建规则...

方案5:使用系统Flutter(替代FVM)

如果问题持续,尝试使用系统Flutter而不是FVM:

makedepends=(
  'clang'
  'cmake'
  'flutter'  # 从AUR安装系统Flutter
  'git'
  'lld'
  'llvm'
  'ninja'
  'patchelf'
  'rustup'
)

build() {
  # 使用系统Flutter
  export PATH="/opt/flutter/bin:$PATH"
  
  cd "$srcdir/$_pkgname"
  flutter clean
  flutter pub get
  flutter build linux --release --verbose
}

调试步骤

  1. 检查符号

    nm -D /opt/nebuchadnezzar/lib/libvodozemac_bindings_dart.so | grep Dart
    
  2. 查看动态依赖

    ldd /opt/nebuchadnezzar/lib/libvodozemac_bindings_dart.so
    
  3. 检查Flutter引擎

    nm -D /opt/nebuchadnezzar/lib/libflutter_linux_gtk.so | grep Dart_CurrentIsolate_DL
    
  4. 临时解决方案
    如果符号确实在Flutter引擎中,尝试:

    patchelf --add-needed libflutter_linux_gtk.so /opt/nebuchadnezzar/lib/libvodozemac_bindings_dart.so
    

推荐方案

从你的libtree输出看,libflutter_linux_gtk.so 已经正确加载。问题可能是Rust绑定时链接了错误的Dart SDK版本。

最可能有效的解决方案

  1. 使用方案1中的详细构建检查
  2. 确保FVM使用的Flutter版本与系统兼容
  3. 在构建后运行patchelf确保所有.so文件都有正确的rpath

如果问题仍然存在,请检查项目的vodozemac子模块配置,可能需要更新Rust绑定或调整FFI声明。

希望能帮助你。