野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18361|回复: 3

[经验\资料] 吃颗定心丸-让蜂鸣器响起来

[复制链接]

第二篇-处理Ubuntu的Qt交叉编译环境

发表于 2020-8-25 22:52:44 | 显示全部楼层 |阅读模式
本帖最后由 STM小学徒 于 2020-8-25 23:43 编辑

建议新手先看完整个文档讲述,再跟着来操作。


一、安装ubuntu
要致富,先修路,先把网络桥梁给搭建好
虚拟机网络设置:
image001.png
关于网络:使用网络地址转换,这样切换网络之后(比如刚刚我使用手机热点,下次使用电脑有线连接),就不用重新选网卡
image003.png
看到有网络连接,则先断网安装,这样安装快一些,等安装成功了,再更换源,然后更新软件。
image005.png
参照野火教程,装好Ubuntu。
基本的设置:双向复制、粘贴
image007.png
打开共享文件,发现没有权限
image009.png
sudo usermod -a -G vboxsf 用户名
image011.png
执行完后,关掉ubuntu,关掉虚拟机。重新打开。
验证一下共享文件夹功能:
在pc端或者Ubuntu端随便创建个文件夹,在pc和Ubuntu都能看到
image013.png
更换源:百度到的会有一堆,我只选择一两个就好
sudo gedit /etc/apt/sources.list
把原有的全部删掉,然后添加:
image015.png
关于sudo的密码:
执行sudo xxx命令后,弹出来让你输入的密码是安装虚拟机时自己设置的密码,比如我设置为123456,则输入123456
关闭文件后:
sudoapt update
sudoapt upgrade

image017.png
安装配置vim
sudo apt-get install vim
安装vim不成功:
image019.png
解决:
sudo apt-get install aptitude
sudo aptitude install vim
image021.png
选n
image023.png
选y
vi /etc/vim/vimrc
在文件的最后输入:
set ts = 4
set nu
(小提示:在未进入编辑状态下输入G可直接跳到最后一行)

验证安装、设置成功,已经显示行号
image025.png
安装git,等下下载脚本用。
sudo apt install git
image027.png
下载文件
在哪个目录下执行的下载,它就下在那个位置:比如我在opt下打开终端,然后粘贴那git链接,它就会下到opt下。而本次我是在主目录执行下载的。

image029.png
关于Ubuntu过一会就得重新输入密码的烦恼:
image031.png
解决:
image035.png
image033.png
查看刚才下载的文件:
image037.png
同时,在百度网盘下载脚本执行需要的安装包:
image039.png
1.  Gcc…8.3.0(编译器相关)
2.  tslib(触摸相关)
3.  alsa(声音相关)
4.  qt-eveyw源码
5.  qt-opensource软件安装包(这不用啥脚本,直接sudo./运行即可)
从PC复制到Ubuntu:
image041.png
粘贴:
image043.png
把这五个文件移动到ubuntu的/opt目录下(先往下看完全部,你应该新建tool,然后放到tool下,这里是之前已经提前截图,不方便修改、不想再重新演示一遍,除非火哥给鸡腿 image045.png
注意:::以下所有移动到/opt的,应修改成sudo mv xxx /opt/tool

移动方法:在当前文件的路径下,
使用sudo mv xxx /opt  把安装包移动到opt目录下。纠正:所有移到/opt的,都应该要移到/opt/tool下
怎么去到刚才复制粘贴文件的的共享文件目录?
在Ubuntu下,去共享文件夹方式一:命令
查看刚刚复制进去的那几个安装包:ls
image047.png
在Ubuntu下,去共享文件夹方式二:像在PC端一样,直接打开
image049.png
然后在文件夹区域,右键,打开终端:
image051.png
image053.png
开始移动文件了:
sudo mv xxxx /opt
image055.png
去到/opt下看看
image057.png
可以安心的继续移动安装包了:
sudo mv  要移动的文件名  /opt
image059.png
同理,也把刚刚克隆下来的脚本放在/opt目录下
要复制的脚本在我刚才克隆的目录下的embed_linux_tutorial/base_code/linux_env/qt_shell_tools
sudo mv xxx.sh /opt
能不能一次同时移动多个文件?能的
image061.png
安装包和脚本都移动到/opt后:
image063.png
“众神已归位,开干…”按顺序执行脚本,该安装的安装,该编译的编译,都将自动在脚本里执行;
sudo ./build-gcc.sh
image065.png
发现不成功,cd进去是空的…
把gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz安装包给删掉,单独执行sudo ./build-gcc.sh
可以下载,但时间久,十分钟我都嫌久。
莫慌,这gcc安装是小问题,对于本次目的,它不涉及很复杂的配置。
解决:
之前发过帖子,论坛链接:
Qt交叉编译环境搭建-安装gcc8.3.0
https://www.firebbs.cn/thread-30209-1-1.html
(出处: 野火电子论坛)
手动解压安装:
sudo tar -xf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C /opt/
建议:sudo tar –xf gcc-arm然后tab键自动补全,补全了再在后面再加-C /opt
解压好了,进去看是有东西的
image067.png
把解压出来的文件重命名为野火说的名字:因为后面操作用的是这名字
不推荐手打,可在线文档那复制这名字(复制为纯文本-电子玩家基本认知素养,直接复制是带有原格式的,有时候会复制一些“你看不见的内容”)
image069.png

image071.png
配置环境:有两种方式可编辑
sudo gedit /etc/profile
sudo vi /etc/profile
但,推荐使用vi,  关键字可以变色
在末尾加上:export PATH=/opt/gcc-arm-linux-gnueabihf-8.3.0/binPATH
可在文档那里粘贴过来:
image073.png
键盘左上角esc  
:wq退出
立即生效配置:
source /etc/profile
现在再查看
image075.png
只要输入arm-li  tab键,后面内容都可以自动补全了,更加验证这是装成功了…
image077.png
若像刚才第一次执行脚本,环境没装成功,是不会补全的。
image079.png
这一次,仅仅是gcc需要手动安装,其他的继续按教程依次执行脚本:
交叉编译tslib
sudo ./ build-tslib.sh
出现错误:
image081.png
make–v查看
没有make
按照提示安装它
image083.png
sudoapt install make
第二个make-guile不用装,装了也无妨。
image085.png
删掉没安装成功的文件
image087.png
继续执行刚刚的脚本,还有个错:
image089.png
其实这里隐约的提示了一些东西:
image091.png
解决:
在当前opt路径下,新建个文件夹:sudo mkdir tool
赋予它权限:sudo chmod 777 tool
先把build-tslib.sh脚本复制进去,也把tslib-1.21.tar.bz2安装包复制进去
然后在tool文件下执行脚本sudo ./build-tslib.sh。
image093.png
tslib安装OK..,没发现Error。
哈哈哈,小白的你露出得意的表情~^v^~
现在回看刚才执行build-gcc.sh出现的错误,估计也是这个原因吧?
既然已经手动装好了,暂且不去纠结,看到此,新手可以直接按照后来的方法去安装它看看。
同理,把其它脚本及安装包也复制到tool里面:
image095.png
交叉编译alsa,丝滑一下子就装好了,没啥毛病。
image097.png
交叉编译Qt注意区分两个意识,传说中说的编译qt源码用到的是qt-everywhere…(编译源码用)而不是:qt-opensource-linux-x64…(安装它,在里面写代码用的) image099.png
要编译qt源码了!加个感叹号,其实只是想强调一下它用时较久罢了。。。
image101.png
sudo ./ build-qt.sh
我的天,它刚才竟然重新下载,立马ctrl+C终止它下载,我的手机流量剩的不多了…看到我框起来的,懂的人已经知道为什么了…
这是火锅的错,在线文档说用5.11.3,而pdf说用5.14.1,懵逼不,其实我在另一台电脑装的是5.14.1,现在为了演示,就顺着5.11.3来。
image103.png
image105.png
当下有两个解决思路:
要么在脚本里把这个版本号修改过来,让脚本匹配已经下载了的源码包版本号。
要么重新下载5.11.3版本的源码包,让源码包匹配脚本。
我觉得在线文档应该是比较新的方法?那就按照它说的,装5.11.3
重新下载源码包:
image107.png
我选择自己科学上网下载该源码包,为什么不从野火网盘下,或者既然能科学上网了,又为啥不直接用脚本下?主要是求稳如老狗,时间在分分钟溜走…
如图,看到网盘里那1.96G,那网盘网速我怕了,而且里面还有其他文件,没必要全下,而且是压缩包的形式,看不到里面装的啥版本,万一下了,仍是5.14.1,,而不是我们要的版本呢?(后面下了网盘的,仍是5.14.1,我的乖乖,还好当时没等着它…)
image109.png
科学上网几分钟下载好了,通过共享文件夹放进来:
image111.png
得套路者得人心…
继续执行qt源码编译脚本,报了这个问题,预感到这次编译肯定有问题的,不急,先让子弹飞一会。。。
image113.png
果然出错:
image115.png
.make: g++: Command not found
对症下药:升降级处理这个g++
sudo apt-get install aptitude
sudo aptitude install g++
前面安装vim的时候也碰过这类似的,似曾相识吧?
image117.png
先选n(为啥选n?它既然都说了,保持下列软件包于其当前版本,如果选y,那还是维持原样,那我执行这命令干啥…,就是让它变变变)
后选y
(看着提示来)
image119.png
执行结束后,输入
g++ -v看看:
image121.png
O了,解决该g++问题,把之前解压出来的qt…文件删除掉,然后继续执行编译脚本:
build-qt.sh
执行过程:
image123.png
我的4G内存电脑正常编译大概半个钟…
终于编译结束,没有看到有Error或者找不到某某提示…
image125.png
编译前面几个包的时候只要没看到Error提示,或者not found字样
我都认为安装成功了。
而这次编译qt源码,如何知道真的编译成功了?
配置环境
来自一位学友的疑问:为啥不直接这样导出?因为下次重启,你还得这样导一遍…,先跟我来
image127.png
同理,和一开始的arm-linux-gnueabihf-gcc8.3.0一样,把环境变量添加进/etc/profile:
在opt下ls
在没设置环境前,直接qmake –v 会看到如图所示:忘记存图了...。
接着:
cd qt-eve../bin
输入pwd,获取当前路径,鼠标选中右键复制它/opt/qt-everywhere-src-5.11.3/bin
等下粘贴用,其它没有的字母export,手动打进去。(为了求稳,我选中从它编译好的去复制)。其实到这里聪明的人已经学会直接从文档复制粘贴整个过来了,对比一下是一模一样的…。
image129.png
image131.png
接着:sudo vi /etc/profile
在后面添加如下:exportPATH=/opt/qt-everywhere-src-5.11.3/binPATH
image133.png
立即生效环境变量:
source /etc/profile
qmake -v
image135.png
看到此 OK了 !
现在所有的环境配置足以使用命令行正常编译出能在板子上运行的qt代码了。
来不及在ubuntu里安装qt-opensource-linux-x64-5.xx.x.run image137.png 了,先从其他地方搞个代码过来,编译试一试?
从别的地方拷贝analogclock(显示一个时钟)到PC端共享文件夹,然后在Ubuntu进入该共享文件夹,
cd analogclock
ls
qmake
image139.png
make clean或者make distclean都可以
make编译
查看文件是什么类型:
file analogclock
看到如下:
analogclock: ELF 32-bit LSB executable,ARM, EABI5 version 1…
image141.png
恭喜你,到此已经成功的编译qt程序了,懂事的人已经可以把他自己的代码放进去进行命令行编译,并且还上传到开发板运行成功了。。。

下期讲如何把这编译好的文件快乐地传到板子。

欢迎各大佬不吝补充指正。
文档的图很高清,到这就打马赛克了,某只嘿咩问题...
高清无码请下载文档
不是!
才发现了,在线编辑文档,图片会迷糊,发表之后就比较清晰了。
经验啊!!!害我编辑的时候没有好心情
啊啊啊

结语:其实ubuntu的qt环境在一开始方向就对的话,(比如在/opt下再新建个文件夹,然后把脚本和安装包放里面)配置它也是一下子的事情,我为啥写的那么多,是想让一些学友体验一下社会的险恶。

image046.gif

评分

参与人数 1火花 +8 收起 理由
guozx + 8 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-8-26 08:38:09 | 显示全部楼层
PC和板子间传文件+qt代码测试

FileZilla.rar

8.23 MB, 下载次数: 4

PC和板子间传文件

analogclock.rar

36.56 KB, 下载次数: 4

qt代码测试

回复 支持 反对

使用道具 举报

发表于 2020-11-3 10:32:02 | 显示全部楼层
顶起来!!!
回复

使用道具 举报

发表于 2021-2-20 09:33:00 | 显示全部楼层
多谢分享 大兄弟
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-4 17:37 , Processed in 0.095278 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表