嵌入式Qt开发环境搭建

假装没事ソ 提交于 2019-11-29 06:36:39

嵌入式Qt开发环境搭建

系统基础环境


  1. 系统更新
sudo apt update
sudo apt upgrade
sudo apt autoremove
  1. 安装常用软件
# 安装vim
sudo apt install vim -y  
# 安装net-tools ,想用ifconfig等命令,就要安装,当然好多linux系统自带了,就不用装了
sudo apt install net-tools
# 安装git gitk
sudo apt install git gitk
# 安装 32bit 库, 这个是必须安装的
sudo apt install lib32ncurses5 lib32z1
# 安装ssh-server,方便ssh登录
sudo apt install openssh-server
# 安装g++ gcc (7.4)
sudo apt install g++ gcc
# 安装make
sudo apt install make

  1. 安装markdown编辑工具,我使用的是typora,在这里就推荐这个了,这个是个人习惯,想用啥就安装啥了,建议尽量文档用markdown书写
# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora

Qt开发环境搭建

QT相关软件的选择

搭建开发环境,就是搭建一个能够将Qt 库 + 自己写的代码编译成我们的目标代码,并能够调试的开发环境.
所以我们需要先确定几点:
我们的目标程序的运行环境是什么样的?
我们的目标程序的规模和功能大致是什么样的?
选用哪个编译链?
选用哪个版本的Qt,
选择哪个版本的Qtcreater,
选用哪个调试器

1. 目标程序的运行环境

嵌入式Qt环境的搭建是为了在我们的程序能够在目标板上正常运行,所以开发环境肯定是和我们的目标板息息相关的.
不同的项目使用不同的目标板,这个一般有不小的差异,但是对我们的开发环境来说,只是需要注意我们的选择能够使程序正常,稳定的运行就行了.
我现在目标板配置如下:

CPU: TI 335X 600MHZ
RAM:128MB
Flash:128MB
1个网口,1个232,2个485,1个usbhost,1个usbdevice,
内部有一个蜂鸣器
linux version: 3.10

2. 目标程序的规模和功能

我所需要开发的程序大致分为以下几个部分:

  1. 界面: 有几个界面需要用户去查看点击
  2. 需要通过以太网与客户端通信
  3. 需要通过485/232 与一些设备通信
  4. 需要存储,查询,修改一些数据,所以需要一个简单的数据库
  5. 需要根据设备通信得到的数据进行分析处理,然后在界面上显示或通过通信传递给客户端
  6. 需要通过界面配置下发一些指令到设备上.

就是这样一个功能需求,所以只需要Qt的一个基础的功能就能满足,不需要特别复杂的功能.

3. Qt版本的选择

Qt现在最新的版本在5.13.x 了,新的版本有很多新的特性,但是,不是选择最新的Qt版本就是最好的,选择Qt还有一个重要因素就是我们的目标板,不同的目标板,肯定要选择合适的Qt版本.不然的话可能跑不动哦.

根据目标板配置来看,由于资源有限,不能选择Qt5这种特别耗资源(相对Qt4来说)版本,
从程序规模来看,也不需要什么特别的功能,所以我们选择Qt 4.8.7版本比较合适,这也是我常用的.也是Qt4.8.x系列最后一个版本了.相对Qt4.8.x其他版本,bug修复了很多很多.
Qt 4.8.7

4. Qtcreater 版本的选择

其实,这个没什么可选的,都能用,尽量选择新版本吧,它只是一个ide,不影响我们最终的代码,但是影响我们的开发效率.
qtcreater 2.8.1

5. 编译链的选择

我们说的编译链,就是说的gcc/g++啦(以后都简称gcc-arm)
一般情况下gcc-arm的获得方式有两种:

  1. 从CPU厂家(网站) 直接获得
  2. 从目标板供应商处获得
  3. 自己搞

至于自己搞,这里就不说了,性价比非常低,费时费力还不一定能用,如果不是生命力特别强,不推荐浪费时间精力去搞了,我们用拿来主义就好.

至于 1,2的区别,我简单说一下.
目标板的获得有两种方式,

  1. 公司自己开发.硬件,软件全都公司自己搞.
  2. 直接购买目标板,只进行应用层开发.

第一种方式,一般会给CPU厂家沟通,直接索取CPU厂家提供的编译链.这个编译链一般都会对相应的CPU进行优化,所以编出来的代码运行效率也好一些.
第二种方式,目标板厂家会根据自己的情况使用特定的编译链,可能不是CPU厂家所推荐的编译链.但是目标板厂家由于种种原因可能会多种目标板使用同一种编译链,以统一开发环境.降低开发人员的各种成本.所以目标板上带的linux kernel,busybox,和lib等都是由他们编译链编译好的.我们为了与目标板做到最好的兼容,最好是也是用和目标板厂家相同的编译链.这样大家都省事.你好,我好,大家好.

说了这么多,我说一下我使用的编译链:
ubuntu 上的pc 用gcc 是 ubuntu默认的gcc version 7.4.0(Ubuntu 7.4.0-1ubuntu1~18.04.1)
目标编译链:是选择的和目标板厂家一样的gcc(现在用的目标板不是自己生产的.)
gcc version 4.8.3 20140320(prerelease) (Sourcery CodeBench Lite 2014.05-29)

安装步骤

首先要区分Qt 和 Qt Creater ,这个可以百度,

QT Creator 只是一个集成的编译器,用于将源代码编译成可执行程序 (本身不包含编译链,需要我们自己安装)。
QT 是跨平台C++图形用户界面应用程序开发框架,可以简单理解成是一个开发包

所以一般我们说的搭建Qt开发环境主要步骤就是:

  1. 安装合适的gcc编辑链(gcc-arm-linux-gnueabi)
  2. 配置gcc 环境变量
  3. 使用arm gcc 编译tslib # 编译Qt要用到(非必须,如果使用触摸屏一般会用到)
  4. 使用安装的arm gcc 编译Qt for Embedded Linux
  5. 安装Qt for Embedded
  6. 安装Qtcreater
  7. 配置 Qt 环境变量
  8. 配置Qt creater
  9. 完成

QtEmbedded的编译这里没有记录,有时间了我单起一章
一下是使用编译好的布置到开发环境.
安装目录:

  • gcc /opt/crosstools # 自己选的
  • Qtcreater /opt # 自己选的
  • qt /usr/local/Trolltech # Qt默认安装目录
#!/bin/bash
echo ">>创建/opt/crosstools 目录"
mkdir /opt/crosstools
echo "解压arm-none-linux-gnueabi 到 /opt/crosstools"
tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/crosstools
echo ">>解压Trolltech到 /usr/local/"
tar jxvf Trolltech.tar.bz2 -C /usr/local/
echo "解压tslib到/opt/"
tar jxvf tslib.tar.bz2 -C /opt/
# 之所以这里将tslib 软连接到/nfsroot ,是因为我在编译QtEmbedded时,配置的tslib的目录是在/nfsroot/tslib,所以在这里使用Qt时,也需要相同的目录
mkdir /nfsroot
ln -s /opt/tslib /nfsroot/tslib
chmod +x qt-creator-linux-x86_64-opensource-2.8.1.run
./qt-creator-linux-x86_64-opensource-2.8.1.run
#在/etc/profile 最后行添加
chmod +w /etc/profile
echo "" >> /etc/profile
echo 'PATH=/opt/crosstools/arm-2014.05/bin:$PATH' >> /etc/profile
echo 'PATH=/opt/qtcreator-2.8.1/bin:$PATH' >> /etc/profile
echo 'PATH=/usr/local/Trolltech/Qt-4.8.7/bin:$PATH' >> /etc/profile
echo 'PATH=/usr/local/Trolltech/QtEmbedded-4.8.7-arm/bin:$PATH' >> /etc/profile
echo '' >> /etc/profile
echo 'export PATH' >> /etc/profile
echo '安装成功'

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!