sudo apt update
sudo apt upgrade
sudo apt autoremove
# 安装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
# 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,
选择哪个版本的Qtcreater,
选用哪个调试器
嵌入式Qt环境的搭建是为了在我们的程序能够在目标板上正常运行,所以开发环境肯定是和我们的目标板息息相关的.
不同的项目使用不同的目标板,这个一般有不小的差异,但是对我们的开发环境来说,只是需要注意我们的选择能够使程序正常,稳定的运行就行了.
我现在目标板配置如下:
CPU: TI 335X 600MHZ
RAM:128MB
Flash:128MB
1个网口,1个232,2个485,1个usbhost,1个usbdevice,
内部有一个蜂鸣器
linux version: 3.10
我所需要开发的程序大致分为以下几个部分:
就是这样一个功能需求,所以只需要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
其实,这个没什么可选的,都能用,尽量选择新版本吧,它只是一个ide,不影响我们最终的代码,但是影响我们的开发效率.
qtcreater 2.8.1
我们说的编译链,就是说的gcc/g++啦(以后都简称gcc-arm)
一般情况下gcc-arm的获得方式有两种:
至于自己搞,这里就不说了,性价比非常低,费时费力还不一定能用,如果不是生命力特别强,不推荐浪费时间精力去搞了,我们用拿来主义就好.
至于 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开发环境主要步骤就是:
QtEmbedded的编译这里没有记录,有时间了我单起一章
一下是使用编译好的布置到开发环境.
安装目录:
#!/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 '安装成功'