惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 【当耐特】
月光博客
月光博客
Vercel News
Vercel News
D
Docker
I
InfoQ
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
有赞技术团队
有赞技术团队
雷峰网
雷峰网
博客园 - 聂微东
小众软件
小众软件
Y
Y Combinator Blog
腾讯CDC
L
LangChain Blog
The GitHub Blog
The GitHub Blog
宝玉的分享
宝玉的分享
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
如何在树莓派上编译Qt 5.14.2 和 Qt Creator 4.12.0 - 少数派
2020-05-11 · via 少数派

Hi,大家好,我是IAMLIUBO,一个热爱开源硬件的Geek,最近在树莓派上做一些Qt开发相关的内容,本文简单记录一下如何在树莓派上编译最新的Qt 5.14.2(2020-04-30),也是在少数派发布的第一篇文章,希望大家会喜欢,后面会尝试在少数派发布更多好玩的关于开源硬件的文章或者视频~

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

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

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

配置编译选项

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++ \
-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

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

编译

配置完成后,我们就可以开始编译了,这里强烈建议将树莓派放到不碍事的地方,因为编译非常耗时,中断会浪费很多时间,然后最好可以配一个散热风扇,实测不加散热风扇并启用多核编译的话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打开工程,然后点击编译和运行按钮。
编译稍微有点慢,请耐心等候一会。
运行结果:

运行结果

恭喜你,到这里你已经成功在树莓派上安装好最新版本的Qt了。