国产化麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文libfcitx最新版本编译1.2.7

news2024/12/23 11:29:54

1.问题描述

麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文,网上找了很多的libfcitxplatforminputcontextplugin.so库都无法使用正常输入;

Qt版本:5.9.6

麒麟系统版本:海光麒麟桌面版kylin V10 SP1  小版本号2203 XC-P923P_KOS_2203_AMD_HG_3250_220630_AUDIT_ACTIVE.iso 

2.原因分析

是因为缺少了libfcitxplatforminputcontextplugin.so库的原因,但是要编译这个库设置的Qt版本和你的Qt版本匹配才能正常输入,否则无法输入中文;

网上说将路径/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

复制到程序路径的platforminputcontexts文件夹下,就可以,但是实际测试不行;网上也找了很多编译过的libfcitxplatforminputcontextplugin.so文件,但是都不行。原因是Qt版本不匹配,导致库不能正常加载,程序打开后,切换到中文输入法,没有响应;所以需要针对具体的Qt版本去重新边编译libfcitxplatforminputcontextplugin.so库;我的Qt版本是5.9.6,编译库的时候也需要指定Qt路径,这就是为什么版本不匹配无法正常加载的原因;

3.解决办法:

按照对应的Qt版本去编译这个库libfcitxplatforminputcontextplugin.so;

下面的连接包含成果物和源码,如果你的Qt版本是5.9.6,可以复制连接下载直接,如果不是可以下载下面的连接源码去设置指定QT版本去编译;

链接:https://pan.baidu.com/s/1zvXWSMHDQEvg5tuiIJYAEA
提取码:关注微信:QStockView,发送麒麟中文,立刻回复给你;

1)安装cmake

联网直接输入命令:sudo apt-get install cmake  来安装cmake

下载cmake

Download | CMake

将Linux版本软件包解压,tar –zxvf cmake-3.26.3-linux-x86_64.tar.gz

重命名解压文件夹未cmake mv cmake-3.26.3-linux-x86_64 cmake

添加系统路径,export PATH=$PATH:/home/hik/soft/cmake/bin

查看cmake是否安装成功,cmake --version

下载fcitx最新版本

/fcitx-qt5/

cd fcitx-qt5

cmake .

make

sudo make install

执行cmake会报如下错误

CMake Error at CMakeLists.txt:8 (find_package):

  Could not find a package configuration file provided by "ECM" (requested

  version 1.4.0) with any of the following names:

    ECMConfig.cmake

    ecm-config.cmake

  Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"

  to a directory containing one of the above files.  If "ECM" provides a

  separate development package or SDK, be sure it has been installed.

-- Configuring incomplete, errors occurred!

遇到上述错误处里方法:

这个页面 https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1 下载 extra-cmake-modules_1.4.0.orig.tar.xz

 https://launchpad.net/ubuntu/+source/extra-cmake-modules/5.18.0-0ubuntu1  extra-cmake-modules_5.18.0.orig.tar.xz

2)安装 extra-cmake-modules_1.4.0.orig.tar.xz

如果联网直接用命令:sudo apt-get install extra-cmake-modules

如果不能联网,则解压后执行下面的命令:

cd extra-cmake-modules-1.4.0
cmake .
make
sudo make install

再次执行fcitx的cmake命令会报如下错误:

- Could NOT find XKBCommon_XKBCommon (missing: XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR) (found version "")

CMake Error at /home/hik/soft/cmake/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):

  Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required

  is at least version "0.5.0")

Call Stack (most recent call first):

  /home/hik/soft/cmake/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)

  cmake/FindXKBCommon.cmake:30 (find_package_handle_standard_args)

  CMakeLists.txt:43 (find_package)

-- Configuring incomplete, errors occurred!

解决办法

联网直接调用sudo apt-get install libxkbcommon-dev

(3)安装libxkbcommon-dev

联网直接调用sudo apt install libxkbcommon-dev

离线下载安装包

wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz

解压:tar xf libxkbcommon-0.5.0.tar.xz

进入目录:cd libxkbcommon-0.5.0

禁用高版本编译器并生成makefile文件:./configure --disable-x11

编译:make

安装:sudo make install

执行make的时候又报错

YACC     src/xkbcomp/parser.c

./build-aux/ylwrap:行176: yacc:未找到命令

make: *** [Makefile:1522:src/xkbcomp/parser.c] 错误 127

解决办法:安装bison

(4)安装Bison

需要​​yacc​​的支持。这个工具包含在软件包​​bison​​中,联网直接执行命令:sudo apt-get install bison

离线下载

https://pkgs.org/download/bison

麒麟系统选择bison_3.5.1+dfsg-1_amd64.deb

将这个下载地址复制到浏览器后下载文件,复制到电脑上进行安装

http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.5.1+dfsg-1_amd64.deb

安装命令:sudo dpkg -i bison_3.5.1+dfsg-1_amd64.deb

版本选3.8.2,太高会报如下错误

正在解压 bison (2:3.8.2+dfsg-1build1) ...

dpkg: 依赖关系问题使得 bison 的配置工作不能继续:

 bison 依赖于 libc6 (>= 2.34);然而:

系统中 libc6:amd64 的版本为 2.31-0kylin9.1k20.5。

也不能选太低的版本,否则会报错:

准备解压 bison_3.0.4.dfsg-1build1_amd64.deb  ...

正在解压 bison (2:3.0.4.dfsg-1build1) 并覆盖 (2:3.8.2+dfsg-1build1) ...

dpkg: 依赖关系问题使得 bison 的配置工作不能继续:

 bison 依赖于 libbison-dev (= 2:3.0.4.dfsg-1build1);然而:

  未安装软件包 libbison-dev。

(5)继续执行安装libxkbcommon-dev

进入目录:cd libxkbcommon-0.5.0/

编译:make

安装:sudo make install

(6)继续安装fcitx

cd fcitx-qt5-1.2.7/

mkdir build

cd build

cmake ..

报错如下

CMake Error at CMakeLists.txt:46 (find_package):

  By not providing "FindFcitx.cmake" in CMAKE_MODULE_PATH this project has

  asked CMake to find a package configuration file provided by "Fcitx", but

  CMake did not find one.

  Could not find a package configuration file provided by "Fcitx" (requested

  version 4.2.8) with any of the following names:

    FcitxConfig.cmake

    fcitx-config.cmake 

  Add the installation prefix of "Fcitx" to CMAKE_PREFIX_PATH or set

  "Fcitx_DIR" to a directory containing one of the above files.  If "Fcitx"

  provides a separate development package or SDK, be sure it has been

  installed.

解决办法增加编译参数

cmake -DENABLE_LIBRARY=false ..

出现如下报错:

CMake Error at qt5/CMakeLists.txt:1 (find_package):

  Could not find a package configuration file provided by "Qt5" (requested

  version 5.1.0) with any of the following names:

    Qt5Config.cmake

    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"

  to a directory containing one of the above files.  If "Qt5" provides a

  separate development package or SDK, be sure it has been installed.

解决方法:

添加qt环境变量,电脑要安装Qt,这里是Qt的安装路径,关键步骤,指定qt编译环境

export CMAKE_PREFIX_PATH=/home/hik/Qt5.9.6/5.9.6/gcc_64

再次执行cmake命令:

hik@hik-dsvt420rhb:~/soft/fcitx-qt5-1.2.7$ cmake -DENABLE_LIBRARY=false .

出现如下报错:

CMake Error at /home/hik/Qt5.9.6/5.9.6/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):

  Failed to find "GL/gl.h" in "/usr/include/libdrm".

Call Stack (most recent call first):

  /home/hik/Qt5.9.6/5.9.6/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:172 (include)

  /home/hik/Qt5.9.6/5.9.6/gcc_64/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:89 (find_package)

  /home/hik/Qt5.9.6/5.9.6/gcc_64/lib/cmake/Qt5/Qt5Config.cmake:28 (find_package)

  qt5/CMakeLists.txt:1 (find_package)

解决方法:

网上查询了一下发现时未安装opengl,于是安装便是了

sudo apt install mesa-common-dev

又出现如下报错: 

执行来更新缺少的软件包

sudo apt-get update

sudo apt-get update –fix-missing

然后再执行如下安装命令,就安装成功了;

sudo apt install mesa-common-dev

再次执行cmake -DENABLE_LIBRARY=false ..

在build文件夹会生成makefile文件,进入build目录执行make命令出现如下错误error: no matching function for call to ‘QMetaObject::invokeMethod(QFcitxPlatformInputContext*, QFcitxPlatformInputContext::setFocusObject(QObject*)::<lambda()>, Qt::ConnectionType)

从这里下载替换的qfcitxplatforminputcontext.cpp 和qfcitxplatforminputcontext.h文件,替换到路径/soft/fcitx-qt5-1.2.7/qt5/platforminputcontext

https://url25.ctfile.com/f/34628125-616663558-6a6901?p=3005 (访问密码: 3005)

最后执行make就会生成so文件

已经编译好的库文件下载链接如下,包含源码,如果使用Qt版本不匹配,需要重新用源码编译,

链接:https://pan.baidu.com/s/1zvXWSMHDQEvg5tuiIJYAEA
提取码:关注微信:QStockView,发送麒麟中文,立刻回复给你;

(7)将soft/fcitx-qt5-1.2.7/build/qt5/platforminputcontext路径下生成的库文件复制到你的程序目录platforminputcontexts下面,就可以输入中文了;

(8)将库文件复制到如下Qt安装路径,然后重新打开Qtcreator,使得Qtcreator能够输入中文

/home/hik/Qt5.9.6/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts

/home/hik/Qt5.9.6/5.9.6/gcc_64/plugins/platforminputcontexts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个多功能(聚合)查询接口,实现模糊、分页、主键、排序以及多条件查询

一个多功能(聚合)查询接口&#xff0c;实现模糊、分页、主键、排序以及多条件查询 前言 写的啰嗦了点&#xff0c;看效果请直接忽略中间&#xff0c;直接看后半部分。 引个流&#xff0c;公众号&#xff1a;小简聊开发 概念 瞎编的名字&#xff0c;哈哈哈&#xff0c;我就勉强…

一道北大强基题背后的故事(二)——出题者怎么想的?

早点关注我&#xff0c;精彩不错过&#xff01; 上篇文章中&#xff0c;我们给出一道北大强基考试中的试题&#xff0c;计算[((1 sqrt(5)) / 2) ^ 12]&#xff0c;给出了一条没有任何数学直觉&#xff0c;纯硬算的弯路以及题目的参考答案&#xff0c;相关内容请戳&#xff1a;…

IronPDF 2023.6.10 FOR NET CRACK

适用于.NET的IronPDF 2023.6.10 添加新的注释API并改进图像压缩逻辑。 2023年6月2日-14:42新版 特点 添加了新的连续进给选项。例如用于生成收据文档。 添加了新的注释API&#xff0c;包括注释删除。 添加了删除书签的功能。 将内存使用率和性能提高了10%。 改进了图像…

全球加速AEB「强标」,15万元以下车型或将「释放」巨量需求

目前&#xff0c;智能驾驶技术升级&#xff0c;主要是在帮助中高端车型提升产品竞争力&#xff0c;同时为车企构建未来软件付费盈利模式的转型。 但另一方面&#xff0c;基础辅助驾驶&#xff0c;尤其主动安全&#xff0c;比如&#xff0c;AEB&#xff08;自动紧急制动&#xf…

【企业化架构部署】基于Apache搭建LAMP架构

文章目录 前言一、LMAP架构介绍1.概念2.LAMP构建顺序3.LAMP编译安装4.各组件介绍4.1 Linux4.2 Apache4.3 MySQL4.4 PHP/Perl/Python 二、服务器部署1.Apache部署2.MySQL部署3.PHP部署4.安装论坛 前言 LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整…

考上大学,走进网安

出品&#xff5c;MS08067实验室&#xff08;www.ms08067.com&#xff09; 本文作者&#xff1a;北平靴 01 我和网络安全的相遇&#xff0c;说来很巧。2022年我考入吉林大学计算机学院&#xff0c;正巧我们的导助是学校ctf战队的成员&#xff0c;所以在刚入学的很清闲的日子里&a…

Python中logger模块的使用教程

参考模块&#xff1a; https://www.digitalocean.com/community/tutorials/how-to-use-logging-in-python-3 logger是python的内置模块&#xff0c;用以输出代码运行过程中的运行情况&#xff0c;极大的方便了我们的debug过程。参考资料中列出了使用logger相比于print优越的地方…

ResNet学习

目录 是什么作用怎么做论文阅读 视频来源&#xff1a;https://www.bilibili.com/video/BV1rZ4y1m7d9/?spm_id_from333.337.search-card.all.click&vd_sourcea402747bd6c153bdb2defee02a9cb617 https://www.bilibili.com/video/BV1rZ4y1m7d9/?spm_id_from333.788&vd_…

Java官方笔记5数字和字符串

Numbers Number的子类&#xff1a; 另外还有BigDecimal和BigInteger&#xff0c;用于高精度计算&#xff0c;AtomicInteger和AtomicLong用于多线程应用。 我们有时候需要用包装类而非基本数据类型&#xff0c;理由如下&#xff1a; 方法入参类型为Object&#xff0c;只能传入对…

什么是Linux shell

一句话概括&#xff1a;简单来说脚本就是将需要执行的命令保存到文本中&#xff0c;按照顺序执行&#xff08;由上往下执行&#xff09;&#xff0c;shell脚本:shell脚本就是一些命令的集合。 一、创建第一个Shell脚本&#xff1a;输出helloworld 1&#xff0e;脚本格式 脚本…

体验管理|“以旧换新”重塑“家电和耐用品”低频的消费需求

Guofu 第 96⭐️ 篇原创文章分享 &#xff08;点击&#x1f446;&#x1f3fb;上方卡片关注我&#xff0c;加⭐️星标⭐️~&#xff09; &#x1f68f; 写在前面 消费者越来越注重产品或服务的体验&#xff0c;而品牌也在竭力提供更好的体验来吸引和保留消费者。 &#x1f926;…

华为OD机试真题 Java 实现【火车进站】【牛客练习题】

一、题目描述 给定一个正整数N代表火车数量&#xff0c;0<N<10&#xff0c;接下来输入火车入站的序列&#xff0c;一共N辆火车&#xff0c;每辆火车以数字1-9编号&#xff0c;火车站只有一个方向进出&#xff0c;同时停靠在火车站的列车中&#xff0c;只有后进站的出站了…

基于SpringBoot+Vue的小区物业管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

【Android】拾物App期末作业

一、期末作业题目 《校园失物/拾物APP》 二、实施目的 通过本实训&#xff0c;使受训者可以深入理解Android相关技术&#xff0c;并将所学知识应用到实际的中等规模的程序设计中。同时&#xff0c;通过本实训&#xff0c;受训者可以拓展Android相关的知识&#xff0c;提升受训者…

修改EMC VNX的管理口IP地址

本文详细介绍如何修改EMC VNX存储的管理口的IP地址&#xff0c;注意Unifed 和block的VNX存储方法是有所不同的&#xff0c;这也是有好几个朋友问我这个问题&#xff0c;写这篇博客的原因。 在修改管理口的IP地址之前&#xff0c;要确保存储不在storage domain中&#xff0c;如…

MTK 人像双摄虚化导通流程

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、 创建 LogicalCameraName 相关的metadata二、 导通 LogicalCameraName Middleware 相关配置三、认 LogicalCameraName 是否创建成功四、双摄bringu…

用自然语言分割一切图像【lang-segment-anything】

近年来&#xff0c;计算机视觉取得了显着进步&#xff0c;特别是在图像分割和目标检测任务方面。 Segment Anything Model (SAM) 是最近的一项重大突破&#xff0c;这是一种多功能的深度学习模型&#xff0c;旨在有效地从图像和输入提示中预测对象掩码。 通过利用强大的编码器和…

听说最近AI应用爆了?!来AI Studio玩转大模型应用

‍ 飞桨 AI Studio 是基于百度深度学习平台飞桨&#xff08;PaddlePaddle&#xff09;的人工智能学习与实训社区&#xff0c;支持一站式模型在线开发与应用。提供优质开源模型、丰富的开源内容、功能强大的在线编程环境、云端超强 GPU 算力及存储资源&#xff0c;帮助开发者们快…

Docker镜像更新通知器DIUN

什么是 DIUN ? Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序&#xff0c;可作为单个可执行文件和 Docker 映像交付&#xff0c;用于当 Docker 映像在 Docker registry中更新时接收通知。 和老苏之前介绍过的 watchtower 不同&#xff0c;DIUN 只是通知&…

基于Grafana的WebUI添加Prometheus数据源(三)

基于Grafana的WebUI添加Prometheus数据源(三) 1、 Grafana 介绍 1.1 什么是Grafana Grafana是一款近几年比较流行的开源数据绘图工具平台。Grafana原生支持包括但不限于InfluxDB&#xff0c;MySQL&#xff0c;OpenTSDB&#xff0c;PostgreSQL和Prometheus等多种数据源作为输入源…