立即注册 找回密码

微雪课堂

搜索
微雪课堂 树莓派 树莓派QT教程 查看内容

树莓派Qt系列教程30:源码方式搭建Qt开发环境

2020-9-3 15:14| 发布者: dasi| 查看: 13652| 评论: 0|原作者: liubo

摘要: 前言我们在上节课中简单了解了一下Qt,那么本节课我们将学习环境搭建,目前最新发布的版本是5.14.2(2020-04-30),5.15.0版本刚发布第四版测试版(Qt 5.15.0-beta4),也就不建议大家先行躺雷了,本篇文章学会了大家也 ...

前言

我们在上节课中简单了解了一下Qt,那么本节课我们将学习环境搭建,目前最新发布的版本是5.14.2(2020-04-30),5.15.0版本刚发布第四版测试版(Qt 5.15.0-beta4),也就不建议大家先行躺雷了,本篇文章学会了大家也可以自行编译最新版本,所以本系列教程是基于5.14.2这个版本进行的,相比于5.14版本的改动并没有带来很多特性上的改变,仅仅是修复了很多Bug,所以我们要查看5.14.2版本的新特性,直接看5.14版本的发布说明即可。

5.14版本发布说明:https://www.qt.io/blog/qt-5.14-has-released

本系列教程我们采用的方式是直接在树莓派上开发,意思就是我们直接在树莓派上编写代码,编译代码,运行代码,所有的工作全部放在树莓派上完成的,也就是你只要有一台树莓派就可以完成所有的学习。

硬件要求

  • 树莓派(我这里使用的是树莓派4B 1GB版本,够用,但是条件如果允许,建议大家考虑2GB版本或更高)

  • 内存卡(16GB及以上)

  • 10寸显示屏(如果没有也可以使用远程桌面)

  • 键鼠

下载源码

由于5.14版本并不能直接使用apt-get方式去安装,所以我们需要从源码安装,当然这一过程还是非常耗时的(请做好心理准备...),使用apt-get方式安装的Qt版本大约在5.11上,可以看出还是有几个版本的距离,那么废话少说,我们先将源码下载下来:

Qt 5.14.2 源码下载:http://download.qt.io/archive/qt/5.14/5.14.2/single/qt-everywhere-src-5.14.2.tar.xz

我们既然要安装最新的Qt版本,那么一并也将最新版本的Qt Creator安装了吧,编译过程同样相当耗时。

Qt Creator 源码下载:https://download.qt.io/official_releases/qtcreator/4.12/4.12.0/qt-creator-opensource-src-4.12.0.tar.gz

编译 Qt5.14.2

我们这里需要先编译Qt 5.14.2,然后再编译Qt Creator,因为Qt Creator其实是用Qt写的,所以只有我们把Qt编译好了,才可以去编译Qt Creator。

交换空间增大

~ $ sudo nano /etc/dphys-swapfile

CON_SWAPSIZE=100修改为CON_SWAPSIZE=1024

然后执行下面的命令:

~ $ sudo /etc/init.d/dphys-swapfile stop
~ $ sudo /etc/init.d/dphys-swapfile start

安装依赖

~ $ sudo apt-get build-dep qt4-x11
~ $ sudo apt-get build-dep libqt5gui5
~ $ sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 libclipper-dev

解压源码

~ $ tar -xvf qt-everywhere-src-5.14.2.tar.xz 

新建文件夹用来编译(影子编译)

~ $ mkdir build
~ $ cd build

下载树莓派的编译配置文件

~ $ git clone https://github.com/oniongarlic/qt-raspberrypi-configuration.git

放到Qt的源代码中。具体为:

common/raspberrypi.conf 放到 /qtbase/mkspecs/common/

linux-rpi2-g++ , linux-rpi3-g++ , linux-rpi-g++ , linux-rpi-vc4-g++ , linux-rpi4-v3d-g++ 这4个文件夹放到 /qtbase/mkspecs/中

配置编译选项

build $ PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/share/pkgconfig \
../qt-everywhere-src-5.14.2/configure -platform linux-rpi4-v3d-g++ \
-D__ARM_ARCH_5TEJ__ \
-v \
-opengl es2 -eglfs \
-no-gtk \
-opensource -confirm-license -release \
-reduce-exports \
-force-pkg-config \
-nomake examples -no-compile-examples \
-skip qtwayland \
-skip qtwebengine \
-no-feature-geoservices_mapboxgl \
-qt-pcre \
-no-pch \
-ssl \
-evdev \
-system-freetype \
-fontconfig \
-glib \
-prefix /opt/Qt5.14 \
-qpa eglfs \
-qt-xcb

注意:大家的树莓派版本可能不一样,如果是4B,则选择linux-rpi4-v3d-g++ 编译,如果是3B,则选择linux-rpi3-g++ 编译,以此类推。如果没有错误,会出现跟下面的图片基本一致:

这里的编译选项大家先不用理解,跟上面保持一致即可。

编译

配置完成后,我们就可以开始编译了,这里强烈建议将树莓派放到不碍事的地方,因为编译非常耗时,中断会浪费很多时间,然后最好可以配一个散热风扇,实测不加散热风扇并启用多核编译的话CPU温度最高能达到60摄氏度。

build $ make #没有散热风扇,不启用多核编译


build $ make -j4 #有散热风扇可以考虑使用这条命令

编译完成后应该会跟下面的图片基本一致:

不过先不要着急,我在实际测试的时候还需要单独编译三个模块,不然后面安装会报错

build $ cd qtlocation/src/3rdparty/clip2tri
clip2tri $ sudo make


clip2tri $ cd qtlocation/src/3rdparty/clipper
clipper $ sudo make


clipper $ cd qtlocation/src/3rdparty/poly2tri
poly2tri $ sudo make
poly2tri $ cd ~/build

这里具体为什么需要单独编译,我也不是很清楚,可能是前面配置的问题,但是可配置选项非常多,我也没有太仔细的研究,大家感兴趣的可以看一下。

安装

安装就相对简单了,我们只需要执行下面的命令即可,不过时间也稍微长一点,大家耐心等候即可:

build $ sudo make install 

安装完成后我们测试下qmake是否可用:

build $ /opt/Qt5.14/bin/qmake -v

如果没有错误的话就应该可以看见跟下面一样的输出了:

QMake version 3.1
Using Qt version 5.14.2 in /opt/Qt5.14/lib

将Qt 5.14.2 设置为默认的Qt 版本

build $ sudo nano /usr/share/qtchooser/qt5.14-compile-byself.conf

将下面两行代码保存到文件中:

/opt/Qt5.14/bin
/opt/Qt5.14/lib

然后修改下**.bashrc**文件

build $ nano ~/.bashrc

在文件的最后增加下面一行内容:

export QT_SELECT=qt5.14-compile-byself

最后我们使设置生效:

build $ source ~/.bashrc

然后我们再测试一下,直接测试qmake,不带路径,看看能不能够正确输出:

build $ qmake -v

如果可以正确输出Qt版本,恭喜你,到这一步就完成了!

编译Qt Creator 4.12

我们再前面已经成功将Qt编译好了,那么接下来我们编译一下Qt Creator,可能有人不晓得这是什么,简单来说这是一个Qt的IDE,功能非常强大,开发Qt必备之良药,当然项目本身就是Qt编写的,大家通过这个工具也能够从侧面看出Qt的强大了,那么废话少说,我们开始编译吧!

解压源码

~ $ tar -xvf qt-creator-opensource-src-4.12.0.tar.xz

新建文件夹用来编译(影子编译)

~ $ mkdir qtcreator-build
~ $ cd qtcreator-build

编译

编译倒是没那么复杂,不过也是一个非常耗时的过程,大约得五六个小时左右... 依次执行下面的命令即可:

qtcreator-build $ qmake -r ../qt-creator-opensource-src-4.12.0
qtcreator-build $ make -j4 #如果树莓派没有任何散热方式,不建议追加 -j4

接下来就是漫长的等待,只要你上面Qt编译没错并安装成功后,这里基本不会有问题,你需要的只有等待一下。

安装

qtcreator-build $ make install

安装完成后有点小Bug,就是我们没法在快捷启动里找到Qt Creator,不过没关系,我们只需要复制一个文件就可以了。

qtcreator-build $ sudo cp /share/applications/org.qt-project.qtcreator.desktop /usr/share/applications/

我猜测是快捷启动没有索引这个目录,不过没仔细研究,我们复制到那个文件下就可以从快捷启动中使用了。

测试

到上一步,我们就已经将Qt和Qt Creator都安装好了,我们这里编译一个官方例程来测试一下!

~ $ cp qt-everywhere-src-5.14.2/qtbase/examples/opengl/2dpainting/ ./ -r

然后我们用Qt Creator,根据下面的步骤打开我们的测试例程:




编译稍微有点慢,请耐心等候一会。 运行结果:

恭喜你,到这里你已经成功将开发环境搭建好了!!!


229

顶一下

刚表态过的朋友 (229 人)

相关阅读

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-4-26 06:26 , Processed in 0.016773 second(s), 13 queries .

返回顶部