正点原子linux-mini开发版QT开发环境配置

正点原子linux-mini开发版QT开发环境配置

  • 基本信息
    • 说明
  • 需要安装的软件
    • 普通的软件
    • 安装 minicon 串口工具
    • 安装 FTP 服务
      • 开发板
      • Ubuntu系统
      • window系统
    • 交叉编译工具链
      • 交叉编译器安装
    • Visual Studio Code 插件的安装
  • Ubuntu系统 QT开发环境配置
    • 配置交叉编译器
      • 第一步:
      • 第二步:配置 qmake
      • 第三步:配置 gdb 调试器
      • 第四步:配置 Kits
      • 第五步:配置环境变量
  • 总结

基本信息

名称 内容
Ubuntu版本 Ubuntu 20.04.1 LTS
QT版本 qt-opensource-linux-x64-5.9.9.run

说明

  根据正点原子的qt配置手册自己进行环境配置,并且把关键的内容记录下来,方便学习。

需要安装的软件

普通的软件

ubuntu系统

软件名称 安装指令 说明
gcc编译器 sudo apt-get install gcc
gcc编译器 sudo apt-get install build-essential
更新软件列表 sudo apt-get update
更新软件 sudo apt-get upgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样安装的才是最新的版本
安装 NFS 服务 sudo apt-get install nfs-kernel-server rpcbind Linux 驱动开发的时候需要 NFS 启动
安装 SSH 服务 sudo apt-get install openssh-server Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu
安装OpenGL库 sudo apt-get install libglu1-mesa-dev Qt5 以上默认将 OpenGL 加入了工程,但是在本机上并没有

安装 OpenGL 相关的东西,所以安装即 OpenGL Library 的其中一个库

安装 minicon 串口工具

安装命令:apt-get install minicon

  1. 配置命令:apt-get install minicon -s 需要进入root账号执行配置才能保存
    正点原子linux-mini开发版QT开发环境配置_第1张图片

  2. 使用down箭头选择serial port setup,出现具体各选项的配置:
    A — Serial Device : /dev/ttyS0
    B — lockfile Location : /var/lock
    C — Calling Program :
    D — Callout Program:
    E — Bps/par/Bits : 9600 8N1
    F — Hardware Flow Control : YES
    G — Software Flow Control : NO
    Change with setting?
    将选项A的值设置为/dev/ttyS0 表示是串口1。如果需要修改选项A的值,在Change with setting?选项后输入A则光标转移到A选项后, 可以对A选项的值进行修改。修改完,按回车键返回

  3. 设置Modem and dialing
    使用方向箭头选中modem and dialing 项,则修改modem and dialing 选项中的配置项。
    需要修改的是去掉A — initing string ……:,B — Reset string ……:
    K — Hang-up string ……三个配置项。

  4. 选择Save as df1。
    选择Save as df1选项将修改后的配置信息进行保存为默认的配置选项。

  5. Exit from minicom 。
    选择Exit from minicom 选项从配置菜单返回到命令行。

  6. 重新启动Minicom。

安装 FTP 服务

开发板

  安装命令:sudo apt-get install vsftpd
  说明:在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输,比如在 Windwos 下进行代码编写,然后将编写好的代码拿到 Ubuntu 下进行编译。Windows 和 Ubuntu 下的文件互传我们需要使用 FTP 服务,设置方法如下:
  sudo vi /etc/vsftpd.conf 设置配置文件

在这里插入图片描述

Ubuntu系统

  安装命令:sudo apt-get install vsftpd

  1. 登录FTP服务器
    方法一:直接输入ftp加ip地址ftp 192.168.10.xxx
    方法二:直接输入ftp,进入ftp服务后输入open加ip地址open 192.168.10.xxx
    当连接成功后会让你进行身份验证,在输入密码时屏幕上没有任何显示,不用管,直接输完密码敲回车键即可。

  2. 查看FTP服务器上的文件
    (一般情况下用户都会被限制目录的访问权限,只可在当前目录下进行操作)
    dir:显示服务器目录和文件列表
    ls:显示服务器简易的文件列表
    cd:进入服务器指定的目录
    dir 命令可以使用通配符“”和“?”,比如,显示当前目录中所有扩展名为jpg的文件,可使用命令 dir .jpg。
    cd命令中必须带目录名。比如 cd main 表示进入当前目录下的main子目录

  3. 下载文件
    上传和下载文件时应该使用正确的传输类型,FTP的传输类型分为ASCII码方式和二进制方式两种,对.txt、.htm等文件应采用ASCII码方式传输,对.exe或图片、视频、音频等文件应采用二进制方式传输。在默认情况下,FTP为ASCII码传输方式。
    type:查看当前的传输方式
    ascii:设定传输方式为ASCII码方式
    binary:设定传输方式为二进制方式
    (以上命令都不带参数)
    get:下载指定文件get filename [newname](filename为下载的FTP服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。
    get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd d:\ 表示将工作目录设定为D盘的根目录。

mget:下载多个文件mget filename [filename …](mget命令支持通配符“”和“?”,比如:mget .mp3 表示下载FTP服务器当前目录下的所有扩展名为mp3的文件。)

  1. 上传文件
    put:上传指定文件put filename [newname]
    send:上传指定文件send filename [newname]
    (filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)
    上传文件前,应该根据文件的类型设置传输方式,本机的工作目录也应该设置为上传文件所在的目录。
    这里的send和put方法用法都基本相同,但是上传速度send却要比put快很多,有兴趣的人可以去研究下。
  2. 结束并退出FTP
    close:结束与服务器的FTP会话
    quit:结束与服务器的FTP会话并退出FTP环境
  3. 其它FTP命令
    pwd:查看FTP服务器上的当前工作目录
    rename filename newfilename:重命名FTP服务器上的文件
    deletefilename:删除FTP服务器上的文件
    help[cmd]:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令

window系统

  Windows 下 FTP 客户端我们使用 FileZilla,这是个免费的 FTP 客户端软件,可以在 FileZilla
官网下载,下载地址: https://www.filezilla.cn/download.
正点原子linux-mini开发版QT开发环境配置_第2张图片

交叉编译工具链

交叉编译器安装

ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器, Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:
1、它肯定是一个 GCC 编译器。
2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。
3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯
片上运行的。
交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 一间非营利性质的开放源代码软件工程公司, Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器),关于 Linaro 详细的介绍可以到 Linaro 官网查阅。Linaro GCC 编译器下载地址如下:
链接: https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/.
我们所使用的 I.MX6U-ALPHA 开发板一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”

  1. 直接执行脚本安装交叉编译工具,连续敲下两次回车键确认,再输入用户密码即可。本次安装的目录为脚本所指定的默认安装的目录,后面的内核编译环境的交叉编译都是按这个安装目录去操作,所以建议您也是默认安装到/opt/fsl-imx-x11/4.1.15-2.1.0 这个默认目录。
    USER# ./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh
  2. 安装相关库 : sudo apt-get install lsb-core lib32stdc++6
  3. 交叉编译器验证: arm-linux-gnueabihf-gcc -v

Visual Studio Code 插件的安装

我们需要按照的插件有下面几个:
1)、C/C++,这个肯定是必须的。
2)、C/C++ Snippets,即 C/C++重用代码块。
3)、C/C++ Advanced Lint,即 C/C++静态检测 。
4)、Code Runner 即代码运行。
5)、Include AutoComplete即自动头文件包含。
6)、Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、One Dark Pro,VSCode 的主题。
8)、GBKtoUTF8,将 GBK 转换为 UTF8。
9)、ARM,即支持 ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
14)、TabNine,一款 AI 自动补全插件.

Ubuntu系统 QT开发环境配置

官方推荐的是:Qt sdk 版本: Qt5.5.1 64bit,我使用的是qt-opensource-linux-x64-5.9.9
下载QT:链接: http://download.qt.io/archive/qt/5.9/5.9.9/.

配置交叉编译器

按如下的步骤添加 GCC 编译器,(这里我啰嗦一下,我们配置的是 GCC 编译器, Windows下配置的编译器名称叫 MinGW (Minimalist GNU on Windows ,实际上是将经典的开源 C/C++语言编译器 GCC 移植到了 Windows 平台下)。在选项中还有更多的编译器名称,这一步也是 Qt 为跨平台做的一步工作。

第一步:

正点原子linux-mini开发版QT开发环境配置_第3张图片正点原子linux-mini开发版QT开发环境配置_第4张图片浏览这个路径/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++找到我们第 1 节里安装的交叉编译器 arm-poky-linux-gnueabi-g++。(题外话这里为什么不是 arm-poky-linux-gnueabi-gcc 呢?gcc 是编译 c 语言的,g++可以编译 c 语言还包括 c++,我们 Qt 编程语言就是 c++)。
正点原子linux-mini开发版QT开发环境配置_第5张图片选择好了后,修改名称,修改为 imx6gcc,再点击应用(Apply)。再到 3.3 小节配置 qmake。

正点原子linux-mini开发版QT开发环境配置_第6张图片

第二步:配置 qmake

点击 Qt Versions 这一项,可以 Qt Creator 有一个 qmake,这个 qmake 是安装 Qt Creator 时候自带的(qmake 的作用是生成用于编译的 Makefile 文件)。和配置交叉编译器一样,我们需要配置我们 IMX6 开发板所使用的 qmake。点击右上角的添加,如下图 3.3. 1
正点原子linux-mini开发版QT开发环境配置_第7张图片
我们 IMX6 开发板所用的 qmake 在交叉编译工具的安装路径/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake 下。
正点原子linux-mini开发版QT开发环境配置_第8张图片为了好区分,在版本名称处把 Qt %{Qt:Version} (qt5)改为 Qt %{Qt:Version} (imx6),点击应
用后(Apply)后,就完成了 qmake 的配置。

正点原子linux-mini开发版QT开发环境配置_第9张图片
备注:在这里可以看到我们交叉编译工具链里的 Qt 版本是 Qt5.6.2,这个与 Qt5.5.1 版本的Qt Creator 没有太大关系(这里要啰嗦一下,为什么我们不用 Qt5.6.2 的 Qt Creator 呢?官方自从 Qt5.6 以后就没有 QWebKit(用于网络编程的模块),对于一些想用 QWebKit 编程而又不想升级 Qt 版本库的读者,所以我们就在交叉编译工具链里的 Qt5.6.2 版本额外添加了 QWebKit模块,同时我们 I.MX6 文件系统也添加了 QWebKit 相关的库)。我们只需要使用交叉编译器里的 Qt5.6.2 版本的来编译我们 I.MX6 开发板上跑的 Qt 应用程序,现在,我们可以把 Qt Creator看作一个具有界面的程序编辑器。

第三步:配置 gdb 调试器

正点原子linux-mini开发版QT开发环境配置_第10张图片
找到我们交叉编译工具链安装路径/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/下的 arm-poky-linux-gnueabi-gdb。选择后点击打开。

正点原子linux-mini开发版QT开发环境配置_第11张图片正点原子linux-mini开发版QT开发环境配置_第12张图片

第四步:配置 Kits

按如下的步骤配置 Kits,点击 OK 确认即可。构建套件处》名称处 imx6 没有红色的叹号说明配置成功!如果你的环境 CMake Tool:处不可以为空,

正点原子linux-mini开发版QT开发环境配置_第13张图片这里说明一下为什么要在 Qt mkspec 填上 linux-oe-g++。实质这里指定了…/mkspesc/linux-oe-g++下的 qmake.conf 文件(用于执行 qmake 时生成 Makefile)。
先使能我们第 1 节里搭建的交叉编译工具链,作用是把交叉编译工具的环境导出到我们终端的环境里。
#Ubuntu source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
用 env 指令查看使能工具链后的环境变量,查看我们用了哪个 mkspecs。如下图
#Ubuntu env
正点原子linux-mini开发版QT开发环境配置_第14张图片正点原子linux-mini开发版QT开发环境配置_第15张图片

第五步:配置环境变量

要想正确使用安装的编译工具链,还需要向 Qt Creator 加入环境变量。
在 Qt creator 的启动脚本里使能环境变量,在/opt/Qt5.5.1/Tools/QtCreator/bin/qtcreator.sh 的第一
行插入使能交叉编译工具链的指令
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
(注意这里不能在#!/bin/sh 以下行插入)。
Ubuntu# sudo vi /opt/Qt5.5.1/Tools/QtCreator/bin/qtcreator.sh
按:wq 保存退出后,先关闭当前的 Qt Creator。再在终端使用指令启动 Qt Creator。注意要想这个环境变量生效,必需通过脚本来启动 Qt Creator,这里很重要啊!没使能环境变量去使用imx6 kits 会出现“make c”之类的错误
Ubuntu# /opt/Qt5.5.1/Tools/QtCreator/bin/qtcreator.sh & (&的作用为在后台运行)

上述配置环境变量是官方给的方式,这个配置方式需要通过启动qtcreator.sh这个脚本文件来启动qt软件的,因此不太方便,查看/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi 文件的内容,可以看出全部是配置环境变量的。因此拷贝这个文件的内容到 /etc/profile 文件内,(拷贝的内容要放在最前面)后,可以重启ubuntu系统后,直接启动qt软件而不用通过脚本启动。

总结

上述是我按照官方配置教程进行配置的记录,以后还会根据新的知识点进行添加本文的内容。

你可能感兴趣的:(Linux系统学习,linux,qt,ubuntu,嵌入式)