当前位置: 首页 > news >正文

Linux桌面环境中应用程序无法启动图形交互界面

现象:
点击永中office或者金山office快捷图标无法启动对应的程序。
从命令行执行对应的程序则提示

按照提示安装组件

再次执行命令行程序

原因探析:
/opt/Yozosoft/Yozo_Office/Yozo_Writer.bin: error while loading shared libraries: libgdk-x11-2.0.so.0: cannot open shared object file: No such file or directory

从名称上看“libgdk-x11-2.0.so.0”是一个GTK+的图形用户接口共享库,如果没有这个library,程序的图形界面将不可启动。

/opt/Yozosoft/Yozo_Office/Yozo_Writer.bin: symbol lookup error: /lib64/libharfbuzz.so.0: undefined symbol: FT_Get_Transform

从提示信息看是差按照符号链接错误,FT_Get_Transform 代表了 C++ 中的Transform类函数,get_transforms()函数多用于进行矢量型图像转换。经查询,发现libharfbuzz.so.0是一个用于渲染字体的共享库。综合这两点可猜测,office套件图形界面此时启动失败,是因为OS用于渲染矢量字体的library和程序运行所需的版本不匹配。Linux中使用freetype共享库实现矢量字体显示,依次可查看freetype共享库信息。查看当前OS 中freetype共享库的信息:

对比发现,OS中Java的freetype共享库版本为libfreetype.so、 而永中office中Java的freetype共享库版本为libfreetype.so.6。由于OS中的Java环境一定为全局变量,因此选择修改永中office中Java环境freetype共享库文件为libfreetype.so。

推导性结论:
大部分Linux桌面环境中的应用程序都基于QT或QT+开发或者基于jvm虚拟机运行,必定会依赖OS中的矢量图像渲染组件freetype共享库,因此除永中office、金山office外,kettel的桌面版也可能存在这个现象。

http://www.lryc.cn/news/174318.html

相关文章:

  • jupyter notebook进不去指定目录怎么办?
  • MySQL 高级(进阶) SQL 语句(二) -----存储过程
  • 机器学习第十三课--主成分分析PCA
  • 钉钉stream机器人-实操详细教程
  • 设计模式:访问者模式(C++实现)
  • Pygame中Sprite的使用方法6-6
  • react多条件查询
  • 2023/09/17
  • Linux centos7压缩包安装mysql-8.0.34 并设置开机自启
  • iOS——present相关属性以及dismiss多级的方法
  • MinDoc v0.4:轻量级文档在线管理系统
  • Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!
  • Opencv 4.5.5 linux contrib编译
  • Windows 11 家庭中文版添加本地安全策略
  • TCP三次握手四次挥手
  • C语言基础-结构体
  • Codeforces Round 848 (Div. 2)C
  • 数据分发服务DDS
  • Linux 文件 目录管理 链接
  • R统计绘图-线性混合效应模型详解(理论、模型构建、检验、选择、方差分解及结果可视化)
  • 钾和钠含量
  • Linux离线安装elasticsearch|header|kibna插件最详细
  • 网络协议学习地图分享
  • nlohmann/json——NLOHMANN_JSON_SERIALIZE_ENUM
  • 类和对象:运算符重载
  • Vue中使用VueAMap
  • Vue中的路由介绍以及Node.js的使用
  • 将本地项目上传至Github详解
  • Vivado下PLL实验
  • 简单理解推挽输出和开漏输出