使用之前 13.3 编译出的 .so 文件不行,一输入就会到程序崩溃,于是只能重新编译。按之前 13.3 的方法(见 https://www.jianshu.com/p/5b32d7c2df7c),结果还是遇到了一些问题,记录一下。
1. 查看 Wolfram 14.3 用的 QT 版本
安装目录下有两个 libQt6Core.so.6 文件,运行它们得到的版本是不一样的,第一个给出 6.8.2, 第二个给出 6.5.1。
Wolfram/14.3/SystemFiles/Components/WSMCore/SystemModeler/SystemFiles/Libraries/Linux-x86-64/libQt6Core.so.6
Wolfram/14.3/SystemFiles/Libraries/Linux-x86-64/Qt/lib/libQt6Core.so.6
其实之前的 13.3 版也是两个,分别对应 6.4.2 和 6.2.4。这回一开始是按 6.8.3 编译的(之所以没有使用 6.8.2 是因为 6.8.x 默认显示最新的,需要选择 Archive 才会显示老版本,最初图省事就没有选),结果最终不管用。后来按 6.5.1 版本编译的才行。6.5.1 也不是 6.5.x 的最新的,这回没图省事。
2. 下载清华提供的在线安装器
3. 配置镜像地址运行安装器
# 清华源
./qt-unified-linux-x64-online.run --mirror https://mirrors.tuna.tsinghua.edu.cn/qt
# 阿里源
./qt-unified-linux-x64-online.run --mirror https://mirrors.aliyun.com/qt
# 南大源
./qt-unified-linux-x64-online.run --mirror http://mirrors.nju.edu.cn/qt/
最开始用的是清华源,结果安装时总是提示下载错误
无法下载存档 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/all_os/qt/qt6_683_unix_line_endings_src/qt.qt6.683.src/6.8.3-0-202503201334qtdoc-everywhere-src-6.8.3.tar.xz:Error transferring https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/all_os/qt/qt6_683_unix_line_endings_src/qt.qt6.683.src/6.8.3-0-202503201334qtdoc-everywhere-src-6.8.3.tar.xz.sha1 - server replied: Forbidden
奇怪的是上述文件直接用网页可以下载,用 wget 也可以,但就是无法用安装器下载。后来尝试改用阿里源就没问题了。安装时不需要安装所有,只需安装 Desktop、 Additional Libraries 即可(6.5.1我也安装了 Qt 5兼容模块,不知是否必要)
4. 编译 fcitx5 的 qt6 插件
首先安装相关依赖(以前装过了,这回就不用了)
sudo apt install libgl-dev extra-cmake-modules libxkbcommon-dev qtbase5-private-dev
从 https://github.com/fcitx/fcitx-qt5 下载源码包 fcitx-qt5-master.zip 并解压,然后进入 fcitx-qt5-master 目录:
#这里qt版本看你自己安装的是什么版本
export PATH=~/Qt/6.5.1/gcc_64/bin/:~/Qt/Tools/CMake/bin/:$PATH
vi CMakeLists.txt
#修改以下两行
option(ENABLE_QT5 "Enable Qt5" Off)
option(ENABLE_QT6 "Enable Qt6 im module" On)
mkdir build && cd build
cmake -DENABLE_LIBRARY=false ../
#cpu是几线程,j后面就写几
make -j16
正常编译完成后把 qt6/platforminputcontext/libfcitxplatforminputcontextplugin-qt6.so 复制到 .../14.3/SystemFiles/Libraries/Linux-x86-64/Qt/plugins/platforminputcontexts/ 目录下即可。
注: 不知从哪个版本开始,Mathematica 直接叫 Wolfram 了,图形界面的命令行启动命令也成了 wolframnb。