【树莓派开发】树莓派3B的Qt交叉编译环境搭建(1)


实验室项目需要用Qt在树莓派上开发一个用户交互界面。虽然树莓派的硬件配置随版本更新不断提升,但是还是无法满足直接在树莓派上进行Qt开发,所以首先要做的事情就是搭建交叉编译环境。

参考了博文:http://www.linuxidc.com/Linux/2016-07/133462.htm

下面开始搭建步骤:

实验平台:树莓派2B(后来在树莓派3上进行了实验,除了raspbian镜像文件不同以外,其他文件不变,验证了该方案可行。)

1.准备文件(下载方式后加)

2015-05-05-raspbian-wheezy.zip

cross-compile-tools-master.zip

gcc-4.7-linaro-rpi-gnueabihf.tbz

qt-everywhere-opensource-src-5.4.1.tar

qt-opensource-linux-x86-5.4.1.run

这里如果不是有对更新的版本需求,还是建议严格按照上述给出的版本下载所需文件,否则可能会出问题。

百度网盘下载:http://pan.baidu.com/s/1gflswjp 提取密码:1em5

2.搭建环境

VMware Workstation 12 Pro下建立的Ubuntu虚拟机,版本为32位的12.04LTS。(试过64位的系统安装32位库支持的方法,但最终没有跑通,所以建议使用32位的Ubuntu


3.Ubuntu系统的主文件夹下新建文件夹命名opt,将准备好的文件放入opt文件夹并解压。


4.挂载树莓派镜像

$sudomkdir /mnt/rasp-pi-rootfs

$sudo mount -o loop,offset=70254592 2016-05-27-raspbian-jessie.img /mnt/rasp-pi-rootfs

注意:

(1)loop,offset之间,不能出现空格。

(2)offset该等于多少?可以执行以下命令查看

$sudofdisk -l 2016-05-27-raspbian-jessie.img


offset=(512* 137216=70254592)

5.编译qtbase

$sudoapt-get install g++


$cd /opt/cross-compile-tools

$sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ /opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc


$cd /opt/qt-everywhere-opensource-src-5.4.1/qtbase

$./configure -opengl es2-device linux-rasp-pi-g++ -device-optionCROSS_COMPILE=/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf--sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake-release -reduce-exports -make libs -no-pch  -make tools -prefix/usr/local/qt5pi -hostprefix /usr/local/qt5pi

(执行时间较长)执行至这一步的执行结果:


$make -j 4


花了44分钟。

$sudo make install


$for MODULE in qtimageformatsqtsvg qtscript qtxmlpatterns qtdeclarative qtsensors qtgraphicaleffectsqtlocation qtserialport qttools qtquick1 qtquickcontrols; do  cd$MODULE;  /usr/local/qt5pi/bin/qmake .;  make -j4;  sudo makeinstall;  cd ..; done

( 以上三个命令的执行时间较长,请耐心等待。执行结束后截图 )


花了1小时左右!

6.Qt交叉编译成功,烧写新的树莓派镜像

首先将树莓派的TF卡通过读卡器插入电脑

$cd /opt/

$sync

$sudo umount/mnt/rasp-pi-rootfs

可以用$sudofdisk –l命令查看TF卡在Ubuntu系统下挂载情况


可以看到的挂载地址为/dev/sdb。所以烧写命令如下:

$sudo dd bs=4Mif=2016-05-27-raspbian-jessie.img of=/dev/sdb

执行烧写命令以后,终端窗口是没有详细显示烧写过程的,所以只要慢慢等待就可以了。

烧写完成后会有相关信息显示:


注意:此时再把刚才卸载的树莓派镜像再次挂载到原地址(因为后面QtCreator的交叉编译需要这个镜像里的文件作为库。否则会在编译的时候出现“Qt没有被正确安装,请运行install这样的错误”),挂载命令和之前一样:

$sudo mount -o loop,offset=70254592 2016-05-27-raspbian-jessie.img/mnt/rasp-pi-rootfs

最后把烧写好的TF卡插入树莓派并开启树莓派



你可能感兴趣的:(raspberry,pi)