嵌入式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 '安装成功'

嵌入式Qt开发环境搭建相关推荐

  1. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  2. Ubuntu20.04下 嵌入式 Qt 开发环境的搭建(适用于Tiny6410)

    Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建 目录导航 Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建 前言 1.安装前的准备工作 2.安装交叉编译器 3.安装t ...

  3. 嵌入式Linux开发环境搭建-曹国辉-专题视频课程

    嵌入式Linux开发环境搭建-1199人已学习 课程介绍         系统讲解嵌入式Linux开发环境搭建方法,包括虚拟机安装,ubuntu安装,交叉编译器安装及配置,嵌入式QT开发环境的构建,u ...

  4. 嵌入式linux编译环境搭建,嵌入式Linux开发环境搭建

    整理下嵌入式Linux开发环境搭建过程笔记. 一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ...

  5. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析

    嵌入式linux开发环境搭建--VirtualBox虚拟机网络环境解析 本博文转自:Pandoras Box http://blog.csdn.net/yxc135/article/details/8 ...

  6. 嵌入式Linux开发环境搭建-4-嵌入式编程基础知识

    嵌入式Linux开发环境搭建-4-嵌入式编程基础知识 1.安装代码编辑器 2.交叉编译工作使用 1.安装代码编辑器 参考文档 ubuntu几款好用的代码编辑器_百度经验 安装sublime text ...

  7. 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)

    目录 一.安装VMware 1.VMware介绍 2.安装VMware16.0.0 二.安装ubuntu16.04.3 LTS 1.Ubuntu介绍 2.下载安装包iso 3.安装 四.新安装Ubun ...

  8. 嵌入式LINUX搭建arm环境,手把手教你嵌入式ARM开发环境搭建

    原标题:手把手教你嵌入式ARM开发环境搭建 1. 安装,配置,启动FTP服务 · 安装FTP: sudo apt-get install vsftpd · 修改vsftpd的配置文件/etc/vsft ...

  9. VS+QT开发环境搭建

    VS+QT开发环境搭建 1.工具准备 VisualStudio最新版直接官网下载,根据需要进行下载,我下载的免费社区版本.日常开发完全够用. QT建议不要下最新版本,同样,为了减少病毒的风险,直接官网 ...

最新文章

  1. 提高C++性能的编程技术笔记:多线程内存池+测试代码
  2. 电脑pdf阅读器哪个好用_电脑免费录屏软件哪个好用?这两个录屏方法千万别错过...
  3. stack与queue
  4. java怎么编程方程_[编程入门]自定义函数求一元二次方程-题解(Java代码)
  5. wlop一张多少钱_求解实木家具沙发垫多少钱一张
  6. Angular.js 简单实现数字变汉字
  7. 在Windows服务器上启用远程桌面连接
  8. SQL中常用日期函数
  9. 机器学习之多项式拟合
  10. 程序员就该这么悲催么? 996下的我们何去何从
  11. 【云原生】灰度发布、蓝绿发布、滚动发布、灰度发布解释
  12. 利用原生写js满天星星
  13. 证件照换底(红→蓝)
  14. MySQL第三方客户端工具
  15. iOS SDWebImage缓存
  16. MT4跟单软件更新至v4.23.0——HOOKSWORK多帐户跨平台
  17. Job 和 Event
  18. mid360 SLAM 建图实现
  19. 坐标偏差大_大数据例析课堂师生交往行为的偏差与矫正
  20. python中numpy-choice函数

热门文章

  1. 人人都是学习者 如何学习,读书
  2. 7、android 高级控件(1)(下拉列表)
  3. 大像素全景制作完成后,推广方式有哪些?
  4. 基于RBF网络的信任值预测算法matlab仿真实现
  5. oracle如何进行多列分组统计,ORACLE分组统计
  6. UE4特效萌新上手笔记- 从Houdini到Niagara的基本工作流程
  7. ES6变量的解构赋值--对象篇
  8. kde 桌面 nvidia闭源驱动桌面特效不可用
  9. 德勤发布《2023科技、传媒和电信行业预测》报告
  10. travisscott多高_175人民币买件T恤,TravisScott有多抠门?