树莓派464bit编译安装QT5.13.2和RedisDesktopManager.1dev
2017年的时候我发表过一篇树莓派 编译安装Python3.5 + PyQT5.8 + Eric6 的文章 链接在此,由于当时搞完了再写的,回忆过程中有些遗漏,导致留言里抱怨问题太多……这次特地边搞边写……
之前上一篇已经交代了系统已经编译安装了Python 3.8.3 和Vscode ,VSCode 网上教程一堆,几步搞定,不多说,安装后显示为Code - OSS (headmelted)
编译安装 redis6.0 也比较简单,很顺利没有太多麻烦,这里不赘述。
说明下,其实我所有的命令都是在su下完成,全部用的proxychain4 代理下载的,真实命令只有 p4 apt install xxxxx , 这里为了严谨没有直接这么写
64bit beta 没有预装QT,于是
sudo apt-get install qt5-default qtcreator qtdeclarative5-dev qtmultimedia5-dev libqt5sql5-mysql
命令一顿撸,安装启动后正常,版本qt5.11 , QTcreator4.8,继续,在pi用户的downlaods 目录下:
git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 2020 rdm2020 && cd ./rdm2020
下载后,用Qtcreator 打开src中的工程文件,发现问题很多,缺模块,一顿操作补充模块,发现插件版本又不对……算了,按照官方要求,直接上Qt5.13 编译安装Qt5.13 全程用了4小时,大家要有心理准备 , 下载源码:
wget http://download.qt.io/archive/qt/5.13/5.13.2/single/qt-everywhere-src-5.13.2.tar.xz
国外有一篇写编译qt5.12的文章,链接在此 微雪也有一篇写的很多人看过,都是在32位系统下的,64位系统有很多不同,
先下载树莓派的配置文件
我是直接 访问 https://github.com/oniongarlic/qt-raspberrypi-configuration 打包下载解压后
把里面的 linux-rpi4-v3d-g++ 文件夹放到 qt-everywhere-src-5.13.2/qtbase/mkspecs 目录里
把 common 目录里的raspberrypi.conf 放到 qt-everywhere-src-5.13.2/qtbase/mkspecs/common 里面
按照这样编译不了的,报错: 不支持参数 -mfpu=crypto-neon-fp-armv8
因为 arm 开发文档里面有写 相关链接
Note
The -mfpu option is only valid with the armv8a-arm-none-eabi target. It is not possible to override the default FPU for the aarch64-arm-none-eabi target. However, you can prevent the use of floating-point instructions or floating-point registers for the aarch64-arm-none-eabi target with the -mgeneral-regs-only option.
到 linux-rpi4-v3d-g++ 目录里,打开 qmake.conf 修改
QMAKE_CFLAGS += -march=armv8-a -mtune=cortex-a72
保存,安装依赖
apt install build-essential libfontconfig1-dev libdbus-1-dev libfreetype6-dev libicu-dev libinput-dev libxkbcommon-dev libsqlite3-dev libssl-dev libpng-dev libjpeg-dev libglib2.0-dev libraspberrypi-dev
这样子编译会出现错误:
Note: The following modules are not being compiled in this configuration: 3dcore
3drender
…………
继续补充依赖:
apt install ibgles2-mesa-dev libgbm-dev libclang-dev
同时在终端下运行:raspi-config 在 Advanced Options -> GL Driver -> GL 2 选择此项
现在再 到 qt-everywhere-src-5.13.2 中运行:
./configure -platform linux-rpi4-v3d-g++ -v -opengl es2 -eglfs -no-gtk -opensource -confirm-license -release -reduce-exports -force-pkg-config -nomake examples -no-compile-examples -skip qtwayland -skip qtwebengine -skip qtscript -no-feature-geoservices_mapboxgl -qt-pcre -no-pch -ssl -tslib -evdev -system-freetype -fontconfig -glib -prefix /opt/Qt5.13.2 -qpa eglfs -recheck-all
经过一堆检查操作,没有报错就要开始编译, 由于我是8gb没搞交换内存等,而且有风扇吹,直接上-j 4
make -j 4
经过4个小时的漫长等待,如果没有报错就可以进行下一步了
后面发现还有坑,这里先补一些依赖
apt install libxcb-xfixes0-dev
makeinstall
后续还会提示一些七七八八问题,遇到一个解决一个:
/usr/bin/ld: 找不到 -lclip2tri
/usr/bin/ld: 找不到 -lpoly2tri
/usr/bin/ld: 找不到 -lclipper
主要是这6个第三方问题:
qt-everywhere-src-5.13.2/qtlocation/src/3rdparty/clip2tri
qt-everywhere-src-5.13.2/qtlocation/src/3rdparty/clipper
qt-everywhere-src-5.13.2/qtlocation/src/3rdparty/poly2tri
qt-everywhere-src-5.13.2/qtvirtualkeyboard/src/plugins/openwnn/3rdparty/openwnn
qt-everywhere-src-5.13.2/qtvirtualkeyboard/src/plugins/pinyin/3rdparty/pinyin
qt-everywhere-src-5.13.2//qtvirtualkeyboard/src/plugins/tcime/3rdparty/tcime
遇到就去这些目录里面,make 一下:然后再make install,此过程历时1个多小时
最终没有再报错结束,这时候打开 QTcreator 打开 工具 -> 选项 Kits 中 QtVersion手工设置 路径,同时Kits中也添加一个设置,如图
这时候再打开之前的rdm2020目录中src目录,选择工程文件,选择自己的环境Qt5.13.2,然后
再rdm2020中新建 build-rdm-default-Debug 、build-rdm-default-Release 、build-rdm-default-Profile、以及 /bin/linux/release 目录
按照要求 要 pip3 install -r src/py/requirements.txt
但是可能有些不一定能装上,这边我缺的不多,直接运行以下你内容
pip3 install bitstring cbor msg phpserializapt
install python3-pandas
修改配置others/resource 中的文件 qt.conf
[Paths]Libraries
=/opt/Qt5.13.2/libPlugins
=/opt/Qt5.13.2/pluginsQml2Imports
=/opt/Qt5.13.2/qml
以及 src/resources/rdm.sh 修改为
#!/bin/bashDIR
=$(dirname "$(readlink -f "$0")")export LD_LIBRARY_PATH
="$DIR/../Qt5.13.2/lib":$LD_LIBRARY_PATH$DIR/rdm
选择 - 工具 - 外部 - QT语言家 - 发布翻译,生成 翻译的qm文件
选择 构建 - 构建项目“rdm" 不会太久,10来分钟后,完成,警告不用管,不报错就行,点击运行如图
这里补充一点:
我这边发现无法切换语言和字体,选择后重新启动还是原来一样,别的没问题,修改源代码app/app.cpp 以及 翻译 .ts 文件名规则,还是不行,debug显示 加载load() 为 True 没问题,有待解决:
QTranslator translator;if (translator.load(QLocale(), "rdm", ".",QLatin1String(":/translations",".qm"))){qDebug()
<< "Load translations file for locale:" << locale;QCoreApplication::installTranslator(
&translator);}
else {qDebug()
<< "Load translations failed:";}
/* QTranslator* translator = new QTranslator((QObject*)this);if (translator->load(QString(":/translations/rdm_") + locale)) {
qDebug() << "Load translations file for locale:" << locale;
QCoreApplication::installTranslator(translator);
} else {
qDebug() << "Load translations failed:" << QString(":/translations/rdm_") + locale;
delete translator;
}
*/}
还修改了下 src/modules/updater/updater.cpp 文件,注释以下代码,不想让它每次都去访问升级地址:
/* manager->get(QNetworkRequest(updateUrl));*/
具体有其他问题可以留言
:)
原文链接:https://www.cnblogs.com/zhaoker/archive/2020/06/11/raspi4_qt5-13.html
以上是 树莓派464bit编译安装QT5.13.2和RedisDesktopManager.1dev 的全部内容, 来源链接: utcz.com/z/517382.html