Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建

目录导航

  • Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建
    • 前言
    • 1.安装前的准备工作
    • 2.安装交叉编译器
    • 3.安装tslib
    • 4.安装 QtCreator
    • 5.编译 Qt 库源码
      • 5.1 准备工作
      • 5.2 编译 PC 版
      • 5.3 编译 ARM 版
    • 6.配置Qt
    • 7.你们要的壁纸

前言

这篇文章,一开始是基于 Ubuntu19.10版本而写,但现在19.10版本的Ubuntu已经停止了源的更新,也就是说,Ubuntu19.10已经废了,故我重新在20.04.02版本上重新尝试了一遍,并对本博文进行了一些修改。

写此文的初衷,是为了自己使用,因为最近正在以Tiny6410板子做实训,所以也是初学者一枚,只能保证我遇上的问题统统能够解决掉,至于一些没遇上的,欢迎各位看客给我留言,大家一起讨论,一起解决。

注:本文会持续更新


1.安装前的准备工作

环境要求

  • Linux系统:Ubuntu 19.10(其实低版本也可以成功,只是可能会有一些我没遇到过的问题,不过16.04、18.04我都装成功过)
  • gcc、g++版本:4.8.5(可以选择更低)
  • 交叉编译器:arm-linux-gcc-4.5.1(后面会讲到)

友情链接

  • Ubuntu 19.10 降级安装gcc4.8、g++4.8
  • 安装环境所需的安装包(友情提供,零积分)

为了方便截图,本教程选择在虚拟机上演示
查看Linux版本号指令

sudo lsb_release -a

2.安装交叉编译器

注意:全程最好使用sudo格式操作,不要进入root权限,以免造成普通用户与root用户权限冲突而引发的错误

  1. 将我分享的安装包解压缩到Linux系统中,比如我就放在了 /home/[用户名]/Share 文件夹目录下

  1. 进入安装包所在的文件夹,将arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz压缩包复制到tmp文件夹下
sudo cp arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz /tmp

3.到/tmp目录下将此压缩包解压缩,注意命令格式
解压缩命令中,最后的C是大写,最后的\不能丢,-C\之间的空格不能丢

cd /tmp/
sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /

解压后如图:

4.配置 .bashrc
这个文件在用户目录下,可以直接cd过去,并用ls -a查看

注: .bashrc文件在每个用户目录下都有,它的功能就类似于Windows系统中的环境配置,都是配置目录路径的。同样,Linux的root权限用户也有这个文件,但每次我用root权限配置后,总是会有各种各样的问题,初学者的我猜测是root用户和普通用户的权限关系是交集,而不是全集子集的关系,所以会有冲突的地方,所以尝试再三后,我决定都用普通用户完成环境的搭建操作。

使用vim或者gedit都可以打开该文件

sudo gedit .bashrc
或者
sudo vim .bashrc

打开后在文件的最下方,添加如下代码
export PATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH
如图:
保存并配置(这一句不需要sudo)

source .bashrc

5.检查arm-linux-gcc是否安装成功

arm-linux-gcc -v

成功则显示如下信息:

如果出现以下错误:

可以查看这个网址:
opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc无法找到


上述网页转载:这里推荐第四到第一的方式尝试,一般都是缺少第四个才不成功的

新人第一篇,开头先扯点废话。都说嵌入式linux入门门槛很高, 亲身体会了一下,还真的是挺高的…从学校的学生实验室拿了块tiny4412,看了几篇csdn的入门文章按部就班做,前面搭建环境和安装交叉编译器安装就卡住了十几天,甚至还搞到虚拟机卡死,关机再开直接开机不成功……多种方法尝试无效后只好重装Ubuntu了,结果里面很多代码、记录都没了QAQ,这可能就是所谓的还没开始编程就已经开始脱发了吧~~~
言归正传,安装了tiny4412光盘自带的交叉编译器后,终端输入arm-linux-gcc -v后提示没有找到(直接在它的目录下打开也不行),然后百度查了几篇文章,有以下几种说法(我用的是虚拟机环境下的Ubuntu 18.04):
1、环境变量设置错误
vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/FriendlyARM/toolschain/4.5.1/bin"
2、缺少32位的运行库 ia32-libs ,安装命令如下:
apt-get install ia32-libs
3、缺少lsb-core运行库,安装命令如下:
sudo apt-get install lsb-core
4、安装g++-multilib
sudo apt-get install g++-multilib直到执行到四种方法都试了才成功~~
————————————————
版权声明:本文为CSDN博主「floatinglong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/floatinglong/article/details/82704390

3.安装tslib

写在前面:编译与安装时常出错,且会留下痕迹。如果错误修改了依旧不能编译安装成功,推荐将整个文件夹统统删除,重新解压缩,重新操作

准备工作:添加32位运行库

sudo apt-get install  lib32ncurses5 lib32z1

1.回到压缩包所在文件夹,解压缩tslib

tar xzf tslib-1.4.tar.gz


2.进入解压缩出的文件夹tslib,并运行./autogen.sh
接下来的操作,请根据我给出的指令来,不要随便加sudo,以免出错

cd tslib/


运行./autigen.sh

//设定C编译器
export CC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc
//设定C++编译器
export CXX=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++

(这两步必须先于 ./autoge.sh 执行,不然使用的时默认的编译器即X86_64下的编译器,生成的库文件都是X86下的可执行文件,可以通过”file filename“命令查看filename文件的属性,编译过程不会出错,但是后面移植Qt的时候会到时tslib永远无法加载进去。)

./autogen.sh


可能出现的错误:./autogen.sh: 4: autoreconf: not found
解决办法:

sudo apt-get install autoconf automake libtool

3.配置configure


sudo mkdir tmp               //创建安装目录echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache            //设置参数./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp   //配置到tmp目录下


4.编译并安装
指令:

make
make install



可能出现的错误:

【1】在make时出错,提示

In function ‘open’, inlined from ‘main’ at ts_calibrate.c:229:11: /usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments make[2]: *** [ts_calibrate.o] Error 1

解决方法:
这是因为open函数的语法不符合最新的gcc,在/tests/ts_calibrate.c中加入open的第三个参数0777:

//通过搜索在ts_calibrate.c文件中找到下列代码
if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {
cal_fd = open (calfile, O_CREAT | O_RDWR, 0777);//此处修改第三个参数为0777
} else {
cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777);//此处修改第三个参数为0777
}

【2】执行make时遇到的error:undefined reference to `rpl_malloc’
原文章出处编译安装tslib-1.4.tar.gz

执行make时遇到的error:
root@mylubuntu:/home/mysmbshare/tslib# make
...............
ts_test.o: In function `main':
ts_test.c:(.text+0x4d4): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0x108): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
Makefile:452: recipe for target 'ts_test' failed
make[2]: *** [ts_test] Error 1
make[2]: Leaving directory '/home/mysmbshare/tslib/tests'
Makefile:481: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/mysmbshare/tslib'
Makefile:392: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:

编辑tslib文件夹下的config.h.in 将文件中的以下两行注释掉

//#undef HAVE_MALLOC 文件中的47行

//#undef malloc 文件中的189行

再次执行步骤4,就ok了。

【3】在make install时出现下面的错误提示

Making install in etc
make[1]: Entering directory ‘/home/yyz/Downloads/tslib/etc’
make[2]: Entering directory ‘/home/yyz/Downloads/tslib/etc’
/usr/bin/mkdir -p ‘/home/yyz/Downloads/tslib/tmp/etc’
/usr/bin/mkdir: cannot create directory ‘/home/yyz/Downloads/tslib/tmp/etc’: Permission denied
(此处标红的内容为错误内容,也是重点)
make[2]: *** [Makefile:343: install-sysconfDATA] Error 1
make[2]: Leaving directory ‘/home/yyz/Downloads/tslib/etc’
make[1]: *** [Makefile:415: install-am] Error 2
make[1]: Leaving directory ‘/home/yyz/Downloads/tslib/etc’
make: *** [Makefile:481: install-recursive] Error 1

这说的是权限不足,不能完成相应操作
此时,就只能使用sudo make install

5.检查tslib编译是否成功
在tslib文件夹下执行以下指令

cd tmp/bin
file ts_test

若得到以下结果,则说明编译成功了

ts_test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.27, with debug_info, not stripped


如果使用file命令显示tslib/bin下的程序格式竟然是X86,则需要重新编译安装(建议把整个tslib文件夹删除干净,重新解压),此时应注意gcc、g++、arm-linux-gcc、arm-linux-g++的版本是否正确

6.将tmp/内的所有东西都拷贝到/usr/local/tslib文件夹下

指令:

sudo mkdir /usr/local/tslib
cd ..
//这一步跟着上面的步骤来的,目的是返回倒tmp文件夹
//如果不是在tmp/bin文件夹下,则自行输入其他指令进入tslib/tmp目录下
sudo cp -rfd * /usr/local/tslib      // 强制拷贝tmp/下所有文件到/usr/local/tslib下// -d:保持链接,原来的是链接,复制过来的还是链接

4.安装 QtCreator

回到安装包所在文件夹,执行如下指令

sudo chmod 777 qt-creator-linux-x86_64-opensource-2.5.2.bin
sudo ./qt-creator-linux-x86_64-opensource-2.5.2.bin


输入第二条命令并回车后,会出现如下内容

5.编译 Qt 库源码

5.1 准备工作

1.在/usr/local/文件夹目录下,创建两个新文件夹:qt-pc qt-arm

sudo mkdir /usr/local/qt-pc /usr/local/qt-arm


2.将源码 qt-everywhere-opensource-src-4.8.5.tar.gz 进行解压,并分别复制里面的内容到qt-pc,qt-arm文件夹下。

sudo tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz
cd qt-everywhere-opensource-src-4.8.5/
sudo cp * /usr/local/qt-pc/ -rf
sudo cp * /usr/local/qt-arm/ -rf

5.2 编译 PC 版

进入qt-pc文件夹
依次configure、make、make install
注: 如果计算机或虚拟机分配的处理器是多核的,可以使用make -j n指令来加快速度,其中,指令里的n就是要使用处理器核的数量
例如:make -j 4 make install -j 4就是使用四个核来编译并安装
指令如下:

cd /usr/local/qt-pc
sudo ./configure
sudo make
sudo make install

当出现下面的内容时,说明该项目已经配置成功了,可以编译并安装了。



编译过程中可能会出现的问题:

./configure出错:Basic XLibfunctionality test failed!


这个错误主要是因为,XLib 库没有安装,所以在编译 X11 平台时,应该保证以下命令正确执行

sudo apt-get install libx11-dev libxext-dev libxtst-dev

注意:可以使用 make confclean 命令把以前的配置信息清除掉,然后再重新配置。

5.3 编译 ARM 版

进入/usr/local/qt-arm/文件夹中

cd /usr/local/qt-arm/

首先进行configure配置,和pc版本的不同,arm版本的configure配置要相对复杂一些

  1. 对qmake.conf文件进行配置
sudo gedit /usr/local/qt-arm/mkspecs/qws/linux-arm-g++/qmake.conf
或者
sudo vim /usr/local/qt-arm/mkspecs/qws/linux-arm-g++/qmake.conf



修改后的文本内容

#对文件中内容覆盖
# modifications to g++.conf
QMAKE_CC                = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc -lts
QMAKE_CXX               = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -lts
QMAKE_LINK              = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -lts
QMAKE_LINK_SHLIB        = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-g++ -lts
# modifications to linux.conf
QMAKE_AR                = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-ar cqs
QMAKE_OBJCOPY           = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-objcopy
QMAKE_STRIP             = /opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-strip
  1. 复制下面的指令,对configure进行配置
sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-pch -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

3.编译并安装

sudo make
sudo make install

4.可能出现的问题
在第二步的configure中,可能会在最后报如下这个错误

The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/usr/local/qt-arm/mkspecs/qws/linux-arm-g++.


编译QtE的时候可能在configure的最后会出现这个问题,下面提供几种解决思路。

  1. arm-linux-gcc无法定位
    由于编译过程需要交叉编译器的支持,因此首先检查arm-linux-gcc的环境变量是否正确配置,在终端输入arm-linux-gcc ,按两次tab,看是否会出现相关选项,否则需要设置环境变量。(详情参考该文章的第2节)

  2. arm-linux-gcc版本问题
    必须确保编译tslib所使用的交叉编译器和编译QtE的交叉编译器的版本相同,不能中途更换版本。(这个没啥多说,按照上文一步一步安装吧)

  3. tslib未被正确编译
    这个问题比较隐蔽,进入/usr/local/tslib/bin目录下(也就是之前tslib的安装路劲)
    执行下面的指令

file ts_test

如果tslib是RAM版本,则显示以下内容

ts_test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.27, with debug_info, not stripped


如果使用file命令显示tslib/bin下的程序格式竟然是X86,则需要重新编译安装(建议把整个tslib文件夹删除干净,重新解压),此时应注意gcc、g++、arm-linux-gcc、arm-linux-g++的版本是否正确

6.配置Qt

打开Qt Creater
通过
工具-->选项-->构建和运行-->Qt 版本菜单,手动设置选择 qmake 路径。
如果linux选择的是英文版,则为
Tools-->Options-->Bulid & Run-->Qt Versions
为了方便,接下来都以英文界面操作(因为我装的英文版linux,大家多多担带)

点击add,添加相应目录下的qmake

注意 一共有两个qmake要添加,分别对应Pc版Qt和ARM版Qt

然后,添加GCC
Add-->GCC



至此,Ubuntu 下Tiny6410 嵌入式 Qt 开发环境的搭建工作,全部完成!

7.你们要的壁纸



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

  1. Ubuntu下嵌入式Qt开发环境配置全攻略

    本文以友善之臂的Mini6410嵌入式开发板为目标板,介绍ubuntu 12.04系统下,配置嵌入式Qt开发工具的过程.本文中介绍的工具.大部分步骤和脚本来自开发板附带资料光盘,但其默认配置环境为老旧 ...

  2. 嵌入式Qt开发环境搭建

    嵌入式Qt开发环境搭建 系统基础环境 系统更新 sudo apt update sudo apt upgrade sudo apt autoremove 安装常用软件 # 安装vim sudo apt ...

  3. 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置

    目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...

  4. Ubuntu 16.04下配置openWRT开发环境

    Ubuntu 16.04下配置openWRT开发环境 1.配置openwrt开发环境,本实验室在ubuntu16.04系统下测试 在编译之前我们先要搭建环境,ubuntu下OpenWrt编译环境需要安 ...

  5. linux 嵌入式 交叉 环境搭建 实验原理,实验三 嵌入式Linux开发环境的搭建

    南京邮电大学通达学院 实 验 报 告 实验 实验三题目 嵌入式Linux开发环境的搭建 课程名称 嵌入式驱动开发实验 学院 专业 班 实验者学号同做者学号 08002210 姓名 毛骏超 同做者学号 ...

  6. GCC编译器简明教程(Linux下C语言开发环境的搭建)

    GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...

  7. Win7下 OpenCV+Qt开发环境搭建

    1.所需软件工具: (1)OpenCV开发库,2.4.9版:包括源文件(source文件夹)和编译后的文件(build文件夹),但最好自己使用CMake又一次编译.否则easy出错. (2)Qt Cr ...

  8. Ubuntu20.04下配置深度学习环境

    文章目录 一.安装Anaconda 1.安装Anaconda 2.区分ubuntu系统中自带的python与Anaconda中带的python 3.创建一个深度学习环境 二.安装cuda与cudnn ...

  9. 【Qt】ubuntu下Qt开发环境的搭建

    下载对应版本的Qt开发环境 Qt官网下载地址:https://download.qt.io 国内镜像下载地址:https://mirrors.cloud.tencent.com/qt/ .建议用镜像下 ...

最新文章

  1. 本科-人工智能模拟卷
  2. 简单好用的中文分词工具之HanLP的安装与使用
  3. LeetCode 49字母异位词分组50pow(x,n)51八皇后
  4. Android系统语言默认设置为简体中文
  5. jQuery二维数组遍历
  6. springboot的redis工具类编写(采用RedisTemplate)(简单的取值,取多个值)。
  7. LeetCode 1780. 判断一个数字是否可以表示成三的幂的和(位运算)
  8. 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
  9. 【测试】模拟一个全表扫描的sql,对其进行优化走索引,并且将执行计划稳定到baseLine。...
  10. python清洗完数据做什么_python数据清洗的基本思路是什么?
  11. ios应用提交审核出现的问题总结
  12. 软件测试基础—易用性测试
  13. steam游戏直连工具
  14. Matab六自由度机械臂建模的偷懒方法
  15. 使用depot_tools下载chromium源码
  16. 牛学长iTunes备份密码移除工具
  17. 微计算机应用是核心吗,北大核心哪个杂志好投
  18. 关于SysinternalsSuite全部工具详解
  19. (转)MAPISendMail调用系统默认的邮件客户端发邮件
  20. GSM Arena 魅族mx四核评测-个人翻译

热门文章

  1. UG_NX 12.0的安装步骤过程及问题解决
  2. 程序开发之——低耦合高内聚
  3. iterative farthest point sample (IFPS or FPS)
  4. 在Windows终端cmd中打开文件夹
  5. JK洛丽塔汉服三坑项目
  6. 2019年区块链有什么规划
  7. windows安装jdk+tomcat并配置环境
  8. 12-南信大研究生院的登录-打印成绩单
  9. 幻世(OurDream)2D图形引擎使用教程11——播放媒体文件(1)
  10. 红黑树原理详解及golang实现