当前位置: 首页 > 知识库问答 >
问题:

为什么在arm64的Debian11上通过snap安装flutter构建程序是报pdfium格式不对?

濮俊美
2023-08-21

你好,我在arm64体系的Debian11上通过snap安装flutter(之前尝试过用flutter_linux_3.13.0-stable.tar.xz的方式,但只支持x86_64,所以用的snap),但是构建一个程序的时候遇到pdfium库格式不对,导致链接失败; 但是在x86_64的Debian11上通过flutter_linux_3.13.0-stable.tar.xz的方式安装后,是可以构建成功的,请问如何解决?或者,是否有arm64版本的flutter_linux_3.13.0-stable.tar.xz可用呢?

我用来构建程序的命令是:
flutter build linux --debug -v

以下部分报错日志:
......
/snap/flutter/current/usr/bin/ld: pdfium-src/lib/libpdfium.so: error adding symbols: file in wrong format
clang: error: linker command failed with exit code 1 (use -v to see invocation)
......

补充:
其它以来库的体系结构都是正确的,不知为啥唯独pdfium是x86_64的,下面是用file命令的输出:
./build/linux/arm64/debug/plugins/smart_auth/libsmart_auth_plugin.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7158574148ac3a609169649ff2d732480c7f7cde, with debug_info, not stripped

./build/linux/arm64/debug/plugins/sqlite3_flutter_libs/libsqlite3_flutter_libs_plugin.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=4687dbcd9b09833665db1730904ac1313cab91c0, with debug_info, not stripped

./build/linux/arm64/debug/pdfium-src/lib/libpdfium.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[xxHash]=cac3e840ed6973a8, not stripped

共有1个答案

苏墨竹
2023-08-21

先看一遍所有内容再尝试;最好在主流架构平台开发为好,除了这个坑不一定还有其他的坑

先执行 flutter doctor 检查一下flutter 是否有问题

  • 原因应该就是你说的架构不对; 需要一个arm64版本的libpdfium然后编译的时候指定它; 这里有一个包含arm64架构 https://github.com/bblanchon/pdfium-binaries libpdfium
  • 另一个可能是你安装的flutter没有问题,snap这个工具的镜像源指向的都是x86架构的,没有arm64的;或者就单单这个libpdfium没有arm64镜像,其他的还oK

罪过,罪过,又分心了... ����... 想法仅供参考

 类似资料:
  • 我试图安装Laravel框架在Windows与Laravel Installer方法。 在留档中我发现了以下内容: 首先,使用Composer下载Laravel安装程序。确保在路径中放置“~/.composer/vendor/bin”目录,以便在终端中运行laravel命令时找到laravel可执行文件。 现在我对这条路并不熟悉。你能告诉我Windows的工作路径吗? 顺便说一句:我用的是WAMP

  • 我已经在Mac上通过自制程序安装了Python。 之后,我将Python版本检查为2.7。11,然后我试着表演 我得到以下错误消息:

  • 我不知道我应该从哪里开始,因为我必须通过安装4j安装程序在JBoss上部署一个网络应用程序。 我已经创建了动态Web应用程序,我想在JBoss上部署这个应用程序,但是部署一个war文件并在客户端机器上配置JBoss不是一个好主意,因此我想创建一个安装程序文件(. exe)文件,它将处理以下事情: > 在客户机上安装JBoss服务器 在JBoss服务器上部署我的应用程序 所以我只需要把安装程序文件给

  • 如何在macOS上使用自制程序只安装JRE(而不是JDK)?

  • 我有Android Studio与Flutter插件安装。Flutter SDK也通过Android Studio安装在我的Mac上,我知道它的路径。 我想这是因为我已经安装了Flutter SDK从Android Studio和我应该更新一些pathes。那么使用Xcode在发布模式下构建flutter应用程序的步骤是什么呢?

  • 我错误地升级了我的flutter版本,我需要回到1.20.3版本,因为我现在使用的版本不稳定。我使用第一个选项(snap)下载flutter,而不是手动下载,所以我不知道如何将我的版本降级到1.20.3。拜托,有人知道怎么做?