在 Raspberry Pi3 or/and Pi 零上构建 Qt5.6 或 Qt5.7
Building Qt5.6 or Qt5.7 on Raspberry Pi3 or/and Pi zero
是否有关于如何在 Raspberry Pi3 上构建 Qt5.6 甚至 5.5 的工作指南?
我在 Wiki 上找到了很多指南,但在某些方面似乎都不完整,我试过的最后一个是:
https://wiki.qt.io/RaspberryPi2EGLFS
在我到达之前还可以:
./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
我不确定是不是因为它是用于 Pi2 的,但是这个错误是:
The OpenGL ES 2.0 functionality test failed!
You migh need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in /home/.../raspi/qtbase/mkspace/mkspecs/devices/linux-rasp-p2-g++.
我不确定如何进一步推进,谢谢。
编辑,这里有更多信息:
我有一个 Raspberry Pi 3, 运行:
Linux pi3 4.1.21.v7+ #872 SMP Wed Apr 6 17:34:14 BST 2016 armv71 GNU/Linux
我看到的第一个错误是:
./configure: 3497: ./configure: /home/simon/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++: 未找到
我去了:
~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
并输入:
arm-linux-gnueabihf-g++
没有安装,那么:
sudo apt-get install g++-arm-linux-gnueabihf
安装成功,然后再次尝试配置指令,结果相同,仍然找不到arm-linux-gnueabihf-g++
编辑 2016/06/12 ...
我尝试了另一个来源:
这个也有问题,有两个库是有问题的:
libjpeg62-dev and libxcb-sync0-dev
任何人都可以向我推荐准确有效的信息吗?
编辑2016/06/13,按照RSATompost编辑的信息,我尝试了wiki页面上的信息和下载Qt,执行配置时结果相同...
运行 配置测试(第 2 阶段)...
无法处理平台 'devices/linux-rasp-pi2-g++' 的 makespec
项目错误:未找到编译器 /home/pi/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++。检查 CROSS_COMPILE -device-option 的值
无法读取 qmake 配置文件 /home/pi/qtbase/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf。
处理项目文件时出错:/dev/null
制作
make: * 未指定目标且未找到 makefile。停止。
pi@pi3:~/qtbase $ 安装
make: * 没有创建目标 'install' 的规则。停止。
第二次尝试,2016/06/14...
OpenGL ES 2.0 已禁用。
OpenGL ES 2.0 功能测试失败!
您可能需要通过在 /home/pi/raspi/qt5pi/qtbase/mkspecs/devices/linux-rasp-pi2-g++.
中编辑 QMAKE_INCDIR_OPENGL_ES2、QMAKE_LIBDIR_OPENGL_ES2 和 QMAKE_LIBS_OPENGL_ES2 来修改包含和库搜索路径
第三次尝试,2016/06/15...
好的,从头开始并按照以下信息重新开始:
https://wiki.qt.io/RaspberryPi2EGLFS
首先,我检查了 Pi 3 上的 OS:
uname -a
结果:
Linux pi3 4.4.9-v7+ #884 SMP Fri May 6 17:28:59 BST 2016 armv7l GNU/Linux
然后:
lsb_release -a
结果:
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
确定后,我跳到第 3 步。
第四步,第一次没看对,不想跨平台开发,想直接在树莓派3上开发。
但是我有 Oracle VirtualBox 运行 版本 5.0.20 r106931 和 Ubuntu 虚拟机,启动了这个,当前版本 Ubuntu:
uname -a
Linux simon-VirtualBox 3.19.0-59-generic #66-14.04.1-Ubuntu SMP Fri May 13 17:27:10 UTC 2016 x86_64 x84_64 GNU/Linuxu
lsb_release -a
No LSB modules are available.
Dsitributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
已完成第 4、5、6 步。
将步骤 7 中的 link 替换为:
wget download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.tar.gz
然后提取:
tar -zxvf qt-everywhere-opensource-src-5.6.0.tar.gz
完成后将文件夹 'qt-everywhere-opensource-src-5.6.0' 重命名为 'qtbase':
mv qt-everywhere-opensource-src-5.6.0 qtbase
然后在克隆指令之后继续第 7 步:
cd qtbase
此时滚动消息几秒后出现大量错误,消息结尾为:
OpenGL ES 2.0 disabled.
The OpenGL ES 2.0 functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
/home/simon/raspi/qtbase/qtbase/mkspecs/devices/linux-rasp-pi2-g++.
第四次尝试,2016/06/18...
感谢RSATom的努力,事情有了一些进展。
我使用以下方法升级了 Jessie 安装:
wget https://raw.githubusercontent.com/Topguy/Raspberry-Qt5-experiments/master/qt5_twolife_jessie_setup.sh
使下载的脚本可执行:
chmod +x qt5_twolife_jessie_setup.sh
执行脚本:
./qt5_twolife_jessie_setup.sh
这将添加一个新的存储库用于更新,更新系统:
sudo apt-get update
sudo apt-get upgrade
确保您拥有所有必需的工具:
sudo apt-get install build-essential
确保您拥有所需的 opengl 组件:
sudo apt get install libgl1-mesa-dev libglu1-mesa-dev
安装qt5:
sudo apt-get install qt5-default
再次更新系统:
sudo apt-get update
sudo apt-get upgrade
这是我卡住的地方,因为系统不允许我执行 qtcreator 的安装:
sudo apt-get install qtcreator
它出错了,如果我然后重新启动 Pi,它不会启动,我已经执行了这个序列两次,虽然它确实安装了 Qt5.5,但它不完整并且使 Pi 变砖,或者在至少在重新刷写 SD 卡之前不会启动。
我现在正在寻找解决方案,以找出为什么 Pi 在安装此更新后无法预订以及为什么 qtcreator 无法安装。
第 5 次尝试,2016/06/19...
Qt5.7的下载源:
wget http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz
提取:
tar -zxvf qt-everywhere-opensource-src-5.7.0.tar.gz
感谢 dbmitch,links:
太令人沮丧了,上面的 link 看起来很有希望,但是我找不到任何 link 提到的 Pi 3 Qt 图像。
2016/06/29 今天发现这个,看起来很有希望,今晚会试试:
Building Your Own Embedded Linux Image
我很快 运行 没有耐心,按照上面的说明 link,我真的不认为这个页面的作者已经尝试过使用可用的工具links.
QtCreator 中有不存在的菜单引用。这不容易遵循,他们想促进产品的使用吗?我每天都在工作中使用 Qt 环境并且它非常好,但是为什么在应该支持的平台上发挥作用如此困难?
2016/07/01 第六次幸运?...
我只是在这一行将 5.6 更改为 5.7:
git clone git://code.qt.io/qt/qtbase.git -b 5.6
它有效...至少我正在 Ubuntu 16.04 上构建和制作 5.7,当它完成时我会同步它...我会回来 post结果。
看我的回答...
尝试安装 libgl1-mesa-dev、libglu1-mesa-dev 和 mesa-common-dev。
EDIT - UPDATE - QT Device Creation for commercial licensing only
Link describing preparing RaspPi for Boot to QT
不确定这是否对您有帮助,因为看起来您正在尝试构建自己的,但看起来最新版本可能会为您提供另一个尝试选项。
在 release notes 6 月 16 日刚刚发布的 5.7 版本
Qt for Device Creation
Also Qt for Device creation has received an update and does now ship
with Qt 5.7. In this release, we added out of the box support for a
set of new hardware:
The Rasberry Pi 3 (32 bit mode) - note that is their spelling
来自他们的博客...
https://blog.qt.io/blog/2016/06/16/qt-5-7-for-device-creation/
新设备图片
We’ve also updated the hardware selection for our pre-built software
images with two new additions:
Raspberry Pi 3
Intel® NUC Kit DE3815TYKHE
For these, and the other common development boards, we provide the
pre-built image with our SDK installer. You can flash the device with
the image and immediately get started with embedded development.
终于成功了,按这个link:
Installing 5.6 step by step instructions
最后我真的安装了5.7,效果很好!只需将 git pull 参数从 5.6 更改为 5.7,就是这样!
非常感谢 RSATom
是否有关于如何在 Raspberry Pi3 上构建 Qt5.6 甚至 5.5 的工作指南?
我在 Wiki 上找到了很多指南,但在某些方面似乎都不完整,我试过的最后一个是:
https://wiki.qt.io/RaspberryPi2EGLFS
在我到达之前还可以:
./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
我不确定是不是因为它是用于 Pi2 的,但是这个错误是:
The OpenGL ES 2.0 functionality test failed!
You migh need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in /home/.../raspi/qtbase/mkspace/mkspecs/devices/linux-rasp-p2-g++.
我不确定如何进一步推进,谢谢。
编辑,这里有更多信息:
我有一个 Raspberry Pi 3, 运行:
Linux pi3 4.1.21.v7+ #872 SMP Wed Apr 6 17:34:14 BST 2016 armv71 GNU/Linux
我看到的第一个错误是: ./configure: 3497: ./configure: /home/simon/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++: 未找到
我去了:
~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
并输入: arm-linux-gnueabihf-g++
没有安装,那么: sudo apt-get install g++-arm-linux-gnueabihf
安装成功,然后再次尝试配置指令,结果相同,仍然找不到arm-linux-gnueabihf-g++
编辑 2016/06/12 ... 我尝试了另一个来源:
这个也有问题,有两个库是有问题的:
libjpeg62-dev and libxcb-sync0-dev
任何人都可以向我推荐准确有效的信息吗?
编辑2016/06/13,按照RSATompost编辑的信息,我尝试了wiki页面上的信息和下载Qt,执行配置时结果相同...
运行 配置测试(第 2 阶段)... 无法处理平台 'devices/linux-rasp-pi2-g++' 的 makespec 项目错误:未找到编译器 /home/pi/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++。检查 CROSS_COMPILE -device-option 的值 无法读取 qmake 配置文件 /home/pi/qtbase/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf。 处理项目文件时出错:/dev/null
制作 make: * 未指定目标且未找到 makefile。停止。 pi@pi3:~/qtbase $ 安装 make: * 没有创建目标 'install' 的规则。停止。
第二次尝试,2016/06/14...
OpenGL ES 2.0 已禁用。 OpenGL ES 2.0 功能测试失败! 您可能需要通过在 /home/pi/raspi/qt5pi/qtbase/mkspecs/devices/linux-rasp-pi2-g++.
中编辑 QMAKE_INCDIR_OPENGL_ES2、QMAKE_LIBDIR_OPENGL_ES2 和 QMAKE_LIBS_OPENGL_ES2 来修改包含和库搜索路径第三次尝试,2016/06/15...
好的,从头开始并按照以下信息重新开始:
https://wiki.qt.io/RaspberryPi2EGLFS
首先,我检查了 Pi 3 上的 OS:
uname -a
结果:
Linux pi3 4.4.9-v7+ #884 SMP Fri May 6 17:28:59 BST 2016 armv7l GNU/Linux
然后:
lsb_release -a
结果:
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
确定后,我跳到第 3 步。
第四步,第一次没看对,不想跨平台开发,想直接在树莓派3上开发。
但是我有 Oracle VirtualBox 运行 版本 5.0.20 r106931 和 Ubuntu 虚拟机,启动了这个,当前版本 Ubuntu:
uname -a
Linux simon-VirtualBox 3.19.0-59-generic #66-14.04.1-Ubuntu SMP Fri May 13 17:27:10 UTC 2016 x86_64 x84_64 GNU/Linuxu
lsb_release -a
No LSB modules are available.
Dsitributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
已完成第 4、5、6 步。
将步骤 7 中的 link 替换为:
wget download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.tar.gz
然后提取:
tar -zxvf qt-everywhere-opensource-src-5.6.0.tar.gz
完成后将文件夹 'qt-everywhere-opensource-src-5.6.0' 重命名为 'qtbase':
mv qt-everywhere-opensource-src-5.6.0 qtbase
然后在克隆指令之后继续第 7 步:
cd qtbase
此时滚动消息几秒后出现大量错误,消息结尾为:
OpenGL ES 2.0 disabled.
The OpenGL ES 2.0 functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
/home/simon/raspi/qtbase/qtbase/mkspecs/devices/linux-rasp-pi2-g++.
第四次尝试,2016/06/18...
感谢RSATom的努力,事情有了一些进展。
我使用以下方法升级了 Jessie 安装:
wget https://raw.githubusercontent.com/Topguy/Raspberry-Qt5-experiments/master/qt5_twolife_jessie_setup.sh
使下载的脚本可执行:
chmod +x qt5_twolife_jessie_setup.sh
执行脚本:
./qt5_twolife_jessie_setup.sh
这将添加一个新的存储库用于更新,更新系统:
sudo apt-get update
sudo apt-get upgrade
确保您拥有所有必需的工具:
sudo apt-get install build-essential
确保您拥有所需的 opengl 组件:
sudo apt get install libgl1-mesa-dev libglu1-mesa-dev
安装qt5:
sudo apt-get install qt5-default
再次更新系统:
sudo apt-get update
sudo apt-get upgrade
这是我卡住的地方,因为系统不允许我执行 qtcreator 的安装:
sudo apt-get install qtcreator
它出错了,如果我然后重新启动 Pi,它不会启动,我已经执行了这个序列两次,虽然它确实安装了 Qt5.5,但它不完整并且使 Pi 变砖,或者在至少在重新刷写 SD 卡之前不会启动。
我现在正在寻找解决方案,以找出为什么 Pi 在安装此更新后无法预订以及为什么 qtcreator 无法安装。
第 5 次尝试,2016/06/19...
Qt5.7的下载源:
wget http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz
提取:
tar -zxvf qt-everywhere-opensource-src-5.7.0.tar.gz
感谢 dbmitch,links:
太令人沮丧了,上面的 link 看起来很有希望,但是我找不到任何 link 提到的 Pi 3 Qt 图像。
2016/06/29 今天发现这个,看起来很有希望,今晚会试试: Building Your Own Embedded Linux Image
我很快 运行 没有耐心,按照上面的说明 link,我真的不认为这个页面的作者已经尝试过使用可用的工具links.
QtCreator 中有不存在的菜单引用。这不容易遵循,他们想促进产品的使用吗?我每天都在工作中使用 Qt 环境并且它非常好,但是为什么在应该支持的平台上发挥作用如此困难?
2016/07/01 第六次幸运?...
我只是在这一行将 5.6 更改为 5.7:
git clone git://code.qt.io/qt/qtbase.git -b 5.6
它有效...至少我正在 Ubuntu 16.04 上构建和制作 5.7,当它完成时我会同步它...我会回来 post结果。
看我的回答...
尝试安装 libgl1-mesa-dev、libglu1-mesa-dev 和 mesa-common-dev。
EDIT - UPDATE - QT Device Creation for commercial licensing only
Link describing preparing RaspPi for Boot to QT
不确定这是否对您有帮助,因为看起来您正在尝试构建自己的,但看起来最新版本可能会为您提供另一个尝试选项。
在 release notes 6 月 16 日刚刚发布的 5.7 版本
Qt for Device Creation
Also Qt for Device creation has received an update and does now ship with Qt 5.7. In this release, we added out of the box support for a set of new hardware:
The Rasberry Pi 3 (32 bit mode) - note that is their spelling
来自他们的博客...
https://blog.qt.io/blog/2016/06/16/qt-5-7-for-device-creation/
新设备图片
We’ve also updated the hardware selection for our pre-built software images with two new additions:
Raspberry Pi 3
Intel® NUC Kit DE3815TYKHE
For these, and the other common development boards, we provide the pre-built image with our SDK installer. You can flash the device with the image and immediately get started with embedded development.
终于成功了,按这个link:
Installing 5.6 step by step instructions
最后我真的安装了5.7,效果很好!只需将 git pull 参数从 5.6 更改为 5.7,就是这样!
非常感谢 RSATom