事件

环境

项目
操作系统 Debian 12
桌面环境 xfce 4
输入法 fcitx 5

背景

  • 最早在Debian上安装Lazarus是直接sudo apt install lazarus,即使用的是官方仓库的版本,也是戏称为万年不更新版。默认安装的是Gtk2版,该版存在中文输入法问题(输入法问题可参照解决Debian上Lazarus输入法问题);也可以把IDE改为Qt5版,同样可以使用中文输入法

  • 想用最新版Lazarus 3.4,直接在官网下载最新的deb包,没有安装成功。

  • 后来使用的是fpcupdeluxe-x86_64-linux安装,即Gtk2版,但是由于官方并没有合并中文输入法的解决方案,每次升级都要再做一遍,麻烦。

  • 现在,准备使用fpcupdeluxe-x86_64-linux-qt5直接安装Qt5版。

问题

直接使用fpcupdeluxe-x86_64-linux-qt5安装,报错:

1
./fpcupdeluxe-x86_64-linux-qt5: error while loading shared libraries: libQt5Pas.so.1: cannot open shared object file: No such file or directory

是因为缺少libQt5Pas.so.1,安装libqt5pas-dev包:

1
sudo apt install libqt5pas-dev

再次安装,又报错:

1
./fpcupdeluxe-x86_64-linux-qt5: symbol lookup error: ./fpcupdeluxe-x86_64-linux-qt5: undefined symbol: QGuiApplication_setFallbackSessionManagementEnabled

先安装Gtk2版,再修改为Qt5版,编译还报错。编写普通的应用,编译为Qt5版,同样报错。

安装官方仓库的Lazarus 2.2,一切正常。

解决

github上查看fpcupdeluxe相关的issues,说是要下载1.2.15版的libqt5pas,并安装:

1
sudo apt install ./libqt5pas1_2.15-1_amd64.deb ./libqt5pas-dev_2.15-1_amd64.deb

进一步查看,其实是因为Qt5删除/更新了部分接口导致不兼容了,而Debian 12的官方仓库中并未包含该更新,所以需要手动下载安装,Debian 13的官方仓库中已经包含了,像以前一样直接安装即可。


其它相关

  • Qt6版同样需要手动安装对应的包,下载地址

  • 已知Qt5Qt6中无法输入汉字,词组最多只能输入两个字,多余的会截断。