一、准备软件
    1.2016-11-25-raspbian-jessie.img(官网下载)
    2.cross-compile-tools-master.zip
    3.gcc-4.7-linaro-rpi-gnueabihf.tbz
    4.qt-everywhere-opensource-src-5.7.1.tar.gz(官网下载)
    中间2.3百度网盘分享:https://pan.baidu.com/s/1jH7zRmA
二、步骤
    1.前几步参照,(创建文件夹,挂载,下载软件请看准备软件,他提供的git链接已经不能用了),http://wiki.qt.io/RaspberryPi_Beginners_Guide。
    2.当挂载完成后,请进入cd /mnt/rasp-pi-rootfs/usr/lib/arm-linux-gnueabihf/查看两个so文件,命令ls -l libdl.so 和ls -l libm.so,看清其指向的文件是否如lrwxrwxrwx 1 root root 13 Jan 10 15:30 libdl.so -> libdl-2.19.so ,如果不是,先删除原来的软连接(sudo rm libdl.so),执行sudo ln -s libdl-2.19.so libdl.so(重新建立软连接),如果arm-linux-gnueabihf文件夹下不存再libdl-2.19.so,看看刚才ls命令其指向的文件在哪,拷贝至此即可,对于libm同样操作,原因:防止出现:undefined reference to `__dlopen’等问题,参照http://blog.csdn.net/scylhy/article/details/52818779。
    3.Compiling qtbase
    ①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.7.1/qtbase folder and run:
    ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi
    上步执行后,qtbase文件夹下将出现一个config.summary,打开后修改FontConfig=yes,libinput=yes,udev=yes
接着执行
    ④make -j 4
    ⑤sudo make install
    ⑥cd ~/opt/qt-everywhere-opensource-src-5.7.1/
    ⑦执行如下命令
    for MODULE in qtimageformats qtsvg  qtscript qtxmlpatterns qtdeclarative qtsensors qt3d qtgraphicaleffects  qtlocation ; do  cd $MODULE;  /usr/local/qt5pi/bin/qmake .;  make -j4;  sudo make install;  cd ..; done
    4. cd~/opt/
       sync; sudo umount /mnt/rasp-pi-rootfs (取消挂载)
       sudo dd bs=1M if=2016-11-25-raspbian-jessie.img of=/dev/sdb; sync (烧录至内存卡)
       到此就完成了交叉编译的环境配置
    
三、qtcreator的配置
    参照http://www.cnblogs.com/duzezhou/p/5692016.html

唯一需要注意的是,电脑写程序的时候依然需要先挂载sudo mount -o loop,offset=70254592 2016-11-25-raspbian-jessie.img /mnt/rasp-pi-rootfs,需要用到其中的库

qtcreator .pro文件要写上下边两句,要不然无法运行,提示找不到远程路径
    target.path = /home/pi/test
    INSTALLS += target

四、程序只能全屏显示
    如果程序下载至raspberry中只能全屏,不要怀疑,并没有出问题,从qt5开始后,使用qpa,platform有eglfs,linuxfb等等,其中eglfs默认full screen显示,如果想窗口显示,用linuxfb模式,在运行程序时加上后缀,如./test -platform linuxfb。官网地址有详细说明:http://doc.qt.io/qt-5/embedded-linux.html

五、如果提示缺少字体

将字体放至电脑/usr/lib/fonts(如果没有fonts目录,自己新建一个,然后把下载的ttf字体放入),并且拷贝字体至树莓派/usr/local/qt5pi/lib下,然后项目中修改如下即可

  1. QApplication a(argc, argv);
  2. QFont font("fangsong", 16);
  3. a.setFont(font);

参照:http://wiki.qt.io/RaspberryPi_Beginners_Guide
     http://blog.csdn.net/scylhy/article/details/52818779
     http://www.cnblogs.com/duzezhou/p/5692016.html

http://blog.csdn.net/xueyeguiren8/article/details/54345013

树莓派 Qt5.7交叉编译的更多相关文章

  1. 树莓派学习笔记——交叉编译练习之SQLite3安装

    0.前言     本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多.     [1]假设使用Python,那么不必安装SQLite由于P ...

  2. qt5.7交叉编译gstreamer-1.0

    一.交叉编译glib1.提前需先交叉编译libffiCC=/home/mjl/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc ...

  3. QT5.7交叉编译安装到arm(好多系列文章)

    以下采用的系统为ubuntu16.04,开发板为迅为iTOP4412,4.3寸屏. 下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz http:// ...

  4. Linux实现树莓派3B的国密SM9算法交叉编译——(一)环境部署、简单测试与eclipse工程项目测试

    这篇文章主要介绍了交叉编译的实现,包括环境部署,并简单测试交叉编译环境是否安装成功. 一.交叉编译 在一个平台上生成另一个平台上的可执行代码.为什么要大费周折的进行交叉编译呢?一句话:不得已而为之.有 ...

  5. 在MACOS上实现交叉编译

    在嵌入式开发过程中,设备的存储空间和运算能力通常会比较低,这时候,比如要编译一个linux的内核,嵌入式设备就不能胜任了,所以,实现交叉编译还是很必要的.通过交叉编译,我们就能够在我们的pc上编译出能 ...

  6. 树莓派学习笔记——使用文件IO操作GPIO SysFs方式

    0 前言     本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...

  7. Linux学习笔记——如何使用共享库交叉编译

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  8. Linux学习笔记——怎样在交叉编译时使用共享库

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  9. Qt Creator的安装与Qt交叉编译的配置

    Qt Creator 的安装 到Qt官网下载Qt Creator  https://www.qt.io/download-open-source/ 其它旧版本点击Achieve连接下载 或登录http ...

随机推荐

  1. UIPasteboard粘贴板:UIMenuController自定义(三)

    这篇咱总结总结自定义剪贴板的使用 其实自定义剪贴板也非常简单,无非是放开响应时间,通过UIMenuController自定义剪贴板,然后就是最关键的实现你所用的copy方法拉. 为了方便实用,我给ce ...

  2. [GeekBand] 设计模式——工厂模式学习笔记

     本文参考文献:GeekBand课堂内容,授课老师:李建忠 :大话设计模式 其余的模式方法请自行查看Geekband相关课程,在此不累述. 这周的课题是: 针对DrawingSystem中的基类Sha ...

  3. A GUIDE TO UNDERSTANDINGDISCRETIONARY ACCESS CONTROL INTRUSTED SYSTEMS

    1. INTRODUCTION   The main goal of the National Computer Security Center is to encourage the widespr ...

  4. mysql 8 远程连接注意事项

    1.首先如果你是在windows平台下连接linux下的mysql 那么请确保linux下的防火墙开放3306端口 vi /etc/sysconfig/iptables在配置文件里增加一行 -A RH ...

  5. MyCat负载均衡 下篇

    MyCat负载均衡 下篇   之前在 一步一步在Windows中使用MyCat负载均衡 上篇 中已经讲了如何配置出MyCat.下面讲其相关的使用. 五.配置MyCat-eye 对于MyCat监控官网还 ...

  6. PCI GXL学习之二次开发篇

    作者:朱金灿 来源:http://blog.csdn.net/clever101 gxl的二次开发分初级和高级之分.初级是gxl提供了几百个模块供你编排成不同的作业.高级就是你可以编写你的算法模块,然 ...

  7. /var/tmp/.oracle 和 oracle listener (监听)的一点理解

    关于 /var/tmp/.oracle 的作用測试 ~---查看 /var/tmp 的权限 [root@lixora var]# ll total 164 ... drwxrwxrwt  3 root ...

  8. 参数的范数正则/惩罚(parameter norm penalties)

    1. L2 范数 J~(w;X,y)=J(w;X,y)+α2wTw J 表示的是原始的目标函数,J~ 则是二范数约束后的新的目标函数. 则根据梯度下降算法有: ∇wJ~=∇wJ+αw w←w−ϵ∇wJ ...

  9. OpenMP 并行程序设计入门

    OpenMP 是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的. 0. 一段使用 OpenMP 的并行程序 #include <stdio.h> #inclu ...

  10. 将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小)

    原文:将指定路径下的所有SVG文件导出成PNG等格式的图片(缩略图或原图大小) WPF的XAML文档(Main.xaml): <Window x:Class="SVG2Image.Ma ...