在 Ubuntu 20.04 中启动 LibreOffice 时出现未定义符号错误

在 Ubuntu 20.04 中启动 LibreOffice 时出现未定义符号错误

执行命令后,libreoffice我收到以下错误消息。

/usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Done_MM_Var

从桌面环境启动它不会显示任何内容。

我尝试重命名~/.config/libreoffice以重置用户设置,但没有任何改变。~/.config/libreoffice不过,创建了一个新文件夹。

在我将 Ubuntu 重新安装到最新版本 20.04 后,我开始收到此错误。我将主文件夹完整地保存在单独的驱动器上,只是在安装过程中格式化了操作系统驱动器。

答案1

将变量设置LD_PRELOAD为指向不同的库解决了该问题。也就是说,以下命令对我有用。

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6 libreoffice

因此,为了能够从桌面环境运行 LibreOffice,我添加了环境变量导出行~/.profile

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6

但是,这个解决方案对我来说似乎有点不靠谱。如果能有一个更合适的解决方案就更好了。

答案2

我在 ubuntu 20.04 上遇到了类似的问题,错误是(undefined symbol: FT_Get_Var_Design_Coordinates

似乎 libreoffice 正在从 graalvm 搜索 libfreetype。Libreoffice 将 JAVA_HOME 设置存储在javasettings_Linux_X86_64.xml名为~/.config/libreoffice

你可以通过运行来找到它

find ~/.config/libreoffice -name javasettings_Linux_X86_64.xml

1-尝试重命名文件并运行libreoffice --calc文件,该文件将自动生成,这可能会有效。

2- 对我有用的方法是删除javasettings_Linux_X86_64.xml并下载 java 11,并将 JAVA_HOME 临时指向 java 11,然后运行,libreoffice --calc当时我使用 java 8,所以更高版本也可能有效,但我已经尝试过 11。我把 java 11 留在原处,但之后将 JAVA_HOME 指向 8(如果您不需要当前 java 版本来做其他事情,您可以保留 java 11)

文件中javasettings_Linux_X86_64.xml有以下内容:

<vendor>AdoptOpenJDK</vendor>
<location>file:///opt/jdk-11.0.4+11</location>
<version>11.0.4</version>

一切似乎都运行良好,我希望它能够帮助其他人。

相关内容