搭建环境:
- Qt 在 Qt5.12.12 之前提供 Windows/Linux/Mac 离线安装包,只有 x86 架构的
- Qt 目前已经支持 ARM 架构,但只有在线安装包
- Qt 从源码构建安装,费时费力还容易出错。我还没掌握
- Qt 在 Linux 还可以通过各系统的软件仓库安装,版本陈旧,也需要联网
软件仓库
系统环境:
1 2 3 4 5 6 7
| niel@ubuntu:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS" niel@ubuntu:~$ uname -a Linux ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
|
克隆仓库需要较大的磁盘空间,下载过程也耗时比较久:
1 2 3
| apt install apt-mirror vim /etc/apt/mirror.list apt-mirror
|
针对 Kylin-Desktop-V10-SP1-General-Release-2303-arm64 ,以最小配置为例,需要准备 120G 的硬盘空间备用:
1 2 3 4 5 6 7 8 9 10 11
| ############# config ################## # set base_path /media/niel/idle set nthreads 4 set _tilde 0 # ############# end config ##############
deb-arm64 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main restricted universe multiverse deb-arm64 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-updates main restricted universe multiverse
|
提供服务:仓库克隆下来之后,${base_path}
随便拷贝、移动使用,比如拿到另一台设备上提供服务
1 2 3 4 5 6 7 8
| apt install nginx # view /etc/nginx/sites-available/default ln -s ${base_path}/mirror/archive.kylinos.cn/kylin /var/www/html/kylin # view /etc/nginx/nginx.conf chmod o+r ${base_path} # 确保拥有权限 chmod o+x ${base_path} # todo 解决权限问题 google systemctl restart nginx.service
|
访问 http://127.0.0.1/kylin/KYLIN-ALL/dists/10.1/Release
验证是否可用(是否解决权限问题)。
开发环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| # 改成能连接的、网速良好的镜像地址(或者内网中的镜像地址) vim /etc/apt/sources.list apt update apt autoremove apt --fix-broken install apt-get autoclean apt-get clean
apt install tcpdump tcpreplay wireshark apt install iperf3 apt install dos2unix minicom gimp ssh apt install unixodbc-dev apt install cmake git build-essential apt install gitk git-gui
apt install libxtst-dev # 或 apt install xorg-dev apt install libgdk-pixbuf2.0-dev apt install libnotify-dev
apt install libqt5charts5-dev apt install libqt5serialport5-dev apt install libqt5svg5-dev apt install libqt5webkit5-dev
apt install qt5-default apt install qtbase5-doc apt install qtbase5-doc-dev qtbase5-doc-html apt install qtbase5-examples qtbase5-private-dev apt install qtcreator apt install qtcreator-doc apt install qtmultimedia5-dev apt install qtpositioning5-dev apt install qttools5-dev
apt list --installed | grep qt # 不建议更新 # apt list --upgradable # apt upgrade
|
自行下载:
- typora 官网下载,解压直接使用。在桌面、开始菜单(
/usr/share/applications/
)中手动增加 .desktop 方便使用。
- dm8 参考其安装手册,避免使用 root 用户安装。在常用账户(而非创建 dmdba 用户)下安装即可,方便使用客户端工具。
- Qt 5.13.2 放在常用账户的主目录下,在
/opt
中创建软链接:部分模块对原始安装目录 /opt
存在硬编码。
- Enclib 放在常用账户的主目录下,以便获取写权限。在
/opt
中创建软链接
- QtPdfium 从 GitHub 仓库克隆源码,依据其 README 自行编译,
make install
安装。
QtPdfium
此项目的代码量很小,通过 3、4 个类封装了 Pdfium 的使用。
在 arm 架构下需要打补丁:
1 2 3 4 5 6 7
| # 追加到 fx_lpng.pri 文件中 contains(QMAKE_HOST.arch, aarch64) { SOURCES += \ $$SOURCE_DIR/libpng16/arm/filter_neon.S \ $$SOURCE_DIR/libpng16/arm/filter_neon_intrinsics.c \ $$SOURCE_DIR/libpng16/arm/arm_init.c }
|
项目的价值在于它把 Pdfium 打包成了 Qt module ,make install
安装到 $QTDIR
之后方便使用:
类比使用 Qt Xml 等模块,避免手工添加头文件、库的依赖。
学习它如何组织三方库 Pdfium 的代码
QtPdfium 以源码形式使用 Pdfium ,而非先将后者编译成库再次使用。
学习制作 Qt module 如何组织代码
load(qt_parts)
和 load(qt_module)
特性做了什么?