最近想在树莓派上安装个Qt的环境,正好手头上有之前玩过的树莓派3B+(4B去年加价卖给矿老板了),所以就把之前用来做游戏机的树莓派3B+来搭建环境了。
首先当然是刷系统,我选择的刷系统的方式是去官方下载刷系统的工具直接刷。
系统选择的是一个64位版本,就是因为这个版本比较新,所以在编译的时候一直报错告诉我不行。
然后开始编译:
可选功能 | 要安装的软件包 | 配置选项 |
---|---|---|
蓝牙 | bluez libbluetooth-dev | |
gstreamer 多媒体框架支持 Wayland开发包是必需的,因为它是Qt使用的gstreamer标头所要求的。 | libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad libgstreamer-plugins-bad1.0-dev gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-alsa libwayland-dev | |
Linux ALSA音频支持 | libasound2-dev | |
脉冲音频支持 | pulseaudio libpulse-dev | |
支持各种数据库(PostgreSQL,MariaDB / MySQL) | libpq-dev libmariadbclient-dev | |
使用 CUPS 的打印支持 | libcups2-dev | |
威兰支持 | libwayland-dev | |
X11 支持 | libx11-dev libxcb1-dev libxext-dev libxfix-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev libfontconfig1-dev libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev libxcb-dev libxcb-dev libxkbcommon-devlibxkbcommon-x11-dev | |
QtWebEngine | Required: flex bison gperf libre2-dev libnss3-dev libdrm-dev Optional: libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev libevent-dev libprotobuf-dev protobuf-compiler raspbian 中的可选但不可用的版本:libopus-dev libvpx-dev 注意:我们强烈建议将 QtWebEngine 与基本 Qt 分开构建。 | |
libzstd | libzstd-dev | |
可及性 | libatspi-dev | |
SCTP [1][2]] | libsctp-dev | -sctp |
我全部安装了,有的安装,没有的也就不管了。
在 Raspberry Pi OS 上为 Raspberry Pi 构建 Qt 5.15 LTS |TalOrg
树莓派Qt系列教程30:源码方式搭建Qt开发环境 - 树莓派QT教程 微雪课堂 (waveshare.net)
编译过程主要参考这两个博客,但是这两个都是比较旧的,其中编译的时候需要注意的地方。
其他的都没什么问题,唯一的问题就是在这篇博客中在 Raspberry Pi OS 上为 Raspberry Pi 构建 Qt 5.15 LTS |TalOrg
直接用他的是不行的,
我的编译参数:
PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig \
../qt-everywhere-src-5.15.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 -nomake tests \
-skip qtwayland \
-skip qtwebengine \
-no-feature-geoservices_mapboxgl \
-qt-pcre \
-no-pch \
-ssl \
-evdev \
-system-freetype \
-fontconfig \
-prefix /opt/Qt/5.15.2 \
-qpa eglfs
第一点,我编译的是Qt5.15.2他的是Qt5.15.5,
第二点是,PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig 第一行的这个编译参数他的跟我的不一样,我是按照我的系统找到的。
第三点:我使用的是树莓派3B+ ,而这个是树莓派4B,而且我用的是64位系统,所以这个参数要选这个 -platform linux-rpi4-v3d-g++不然会出这样的错误。-mfpu=crypto-neon-fp-armv8
编译完成:
直接make就可以,如果也可以make -j4 后面的4代表着几个核心,个人建议4核心的树莓派写3就行,因为要留一个核心做其他事情,编译源码树莓派3B+ 我这估计运行了12个小时以上。
这是结果:
然后直接: sudo make install
然后进入到 /opt/Qt5.12/bin 执行 ./qmake -v (为什么是Qt5.12而不是Qt5.15,因该是我上面的抄的编译命令没有该全)
搭建环境:
1.sudo nano /usr/share/qtchooser/qt5-arm-linux-gnueabihf.conf
把里面内容替换成
/opt/Qt5.12/bin
/opt/Qt5.12/lib
2. 命令:vim ~/.bashrc 在最后一行添加 export QT_SELECT=qt5-arm-linux-gnueabihf
注意:一定不要加后缀conf
这个就是上面的文件名
3. 运行 source ~/.bashrc
4. 测试 qmake -v
Index of /official_releases/qtcreator
https://download.qt.io/official_releases/qtcreator
编译Qt Creator 4.14.2
下载地址
Index of /archive/qtcreator/4.14/4.14.2
解压:
tar -xvf qt-creator-opensource-src-5.0.3.tar.xz
新建文件夹用来编译(影子编译)
mkdir qtcreator-build
cd qtcreator-build
编译
qmake -r ../qt-creator-opensource-src-5.0.3
然后就是漫长的编译:
make -j3
大约12小时
然后 sudo make install
sudo cp /share/applications/org.qt-project.qtcreator.desktop /usr/share/applications/