文章首发于个人博客
事件
环境
项目 | 值 |
---|---|
操作系统 | 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
安装,报错:
./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
包:
sudo apt install libqt5pas-dev
再次安装,又报错:
./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
,并安装:
sudo apt install ./libqt5pas1_2.15-1_amd64.deb ./libqt5pas-dev_2.15-1_amd64.deb
进一步查看,其实是因为Qt5
删除/更新了部分接口导致不兼容了,而Debian 12
的官方仓库中并未包含该更新,所以需要手动下载安装,Debian 13
的官方仓库中已经包含了,像以前一样直接安装即可。