本帖最后由 STM小学徒 于 2020-8-25 23:43 编辑
建议新手先看完整个文档讲述,再跟着来操作。
一、安装ubuntu:
要致富,先修路,先把网络桥梁给搭建好 虚拟机网络设置: 关于网络:使用网络地址转换,这样切换网络之后(比如刚刚我使用手机热点,下次使用电脑有线连接),就不用重新选网卡 看到有网络连接,则先断网安装,这样安装快一些,等安装成功了,再更换源,然后更新软件。
参照野火教程,装好Ubuntu。 基本的设置:双向复制、粘贴 打开共享文件,发现没有权限
sudo usermod -a -G vboxsf 用户名
执行完后,关掉ubuntu,关掉虚拟机。重新打开。 验证一下共享文件夹功能: 在pc端或者Ubuntu端随便创建个文件夹,在pc和Ubuntu都能看到 更换源:百度到的会有一堆,我只选择一两个就好 sudo gedit /etc/apt/sources.list 把原有的全部删掉,然后添加: 关于sudo的密码: 执行sudo xxx命令后,弹出来让你输入的密码是安装虚拟机时自己设置的密码,比如我设置为123456,则输入123456 关闭文件后: sudoapt update sudoapt upgrade
安装配置vim sudo apt-get install vim 安装vim不成功: 解决: sudo apt-get install aptitude sudo aptitude install vim
选n
选y vi /etc/vim/vimrc 在文件的最后输入: set ts = 4 set nu (小提示:在未进入编辑状态下输入G可直接跳到最后一行)
验证安装、设置成功,已经显示行号 安装git,等下下载脚本用。 sudo apt install git 下载文件 在哪个目录下执行的下载,它就下在那个位置:比如我在opt下打开终端,然后粘贴那git链接,它就会下到opt下。而本次我是在主目录执行下载的。
关于Ubuntu过一会就得重新输入密码的烦恼: 解决:
查看刚才下载的文件: 同时,在百度网盘下载脚本执行需要的安装包: 1. Gcc…8.3.0(编译器相关) 2. tslib(触摸相关) 3. alsa(声音相关) 4. qt-eveyw源码 5. qt-opensource软件安装包(这不用啥脚本,直接sudo./运行即可) 从PC复制到Ubuntu: 粘贴: 把这五个文件移动到ubuntu的/opt目录下(先往下看完全部,你应该新建tool,然后放到tool下,这里是之前已经提前截图,不方便修改、不想再重新演示一遍,除非火哥给鸡腿
) 注意:::以下所有移动到/opt的,应修改成sudo mv xxx /opt/tool
移动方法:在当前文件的路径下, 使用sudo mv xxx /opt 把安装包移动到opt目录下。纠正:所有移到/opt的,都应该要移到/opt/tool下 怎么去到刚才复制粘贴文件的的共享文件目录? 在Ubuntu下,去共享文件夹方式一:命令 查看刚刚复制进去的那几个安装包:ls 在Ubuntu下,去共享文件夹方式二:像在PC端一样,直接打开 然后在文件夹区域,右键,打开终端:
开始移动文件了: sudo mv xxxx /opt 去到/opt下看看 可以安心的继续移动安装包了: sudo mv 要移动的文件名 /opt 同理,也把刚刚克隆下来的脚本放在/opt目录下 要复制的脚本在我刚才克隆的目录下的embed_linux_tutorial/base_code/linux_env/qt_shell_tools sudo mv xxx.sh /opt 能不能一次同时移动多个文件?能的 安装包和脚本都移动到/opt后: “众神已归位,开干…”按顺序执行脚本,该安装的安装,该编译的编译,都将自动在脚本里执行; sudo ./build-gcc.sh 发现不成功,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 解压好了,进去看是有东西的 把解压出来的文件重命名为野火说的名字:因为后面操作用的是这名字 不推荐手打,可在线文档那复制这名字(复制为纯文本-电子玩家基本认知素养,直接复制是带有原格式的,有时候会复制一些“你看不见的内容”)
配置环境:有两种方式可编辑 sudo gedit /etc/profile sudo vi /etc/profile 但,推荐使用vi, 关键字可以变色 在末尾加上:export PATH=/opt/gcc-arm-linux-gnueabihf-8.3.0/bin PATH 可在文档那里粘贴过来: 键盘左上角esc :wq退出 立即生效配置: source /etc/profile 现在再查看 只要输入arm-li tab键,后面内容都可以自动补全了,更加验证这是装成功了… 若像刚才第一次执行脚本,环境没装成功,是不会补全的。 这一次,仅仅是gcc需要手动安装,其他的继续按教程依次执行脚本: 交叉编译tslib sudo ./ build-tslib.sh 出现错误: make–v查看 没有make 按照提示安装它 sudoapt install make 第二个make-guile不用装,装了也无妨。 删掉没安装成功的文件 继续执行刚刚的脚本,还有个错: 其实这里隐约的提示了一些东西: 解决: 在当前opt路径下,新建个文件夹:sudo mkdir tool 赋予它权限:sudo chmod 777 tool 先把build-tslib.sh脚本复制进去,也把tslib-1.21.tar.bz2安装包复制进去 然后在tool文件下执行脚本sudo ./build-tslib.sh。 tslib安装OK..,没发现Error。 哈哈哈,小白的你露出得意的表情~^v^~ 现在回看刚才执行build-gcc.sh出现的错误,估计也是这个原因吧? 既然已经手动装好了,暂且不去纠结,看到此,新手可以直接按照后来的方法去安装它看看。 同理,把其它脚本及安装包也复制到tool里面: 交叉编译alsa,丝滑一下子就装好了,没啥毛病。交叉编译Qt注意区分两个意识,传说中说的编译qt源码用到的是qt-everywhere…(编译源码用)而不是:qt-opensource-linux-x64…(安装它,在里面写代码用的)
要编译qt源码了!加个感叹号,其实只是想强调一下它用时较久罢了。。。 sudo ./ build-qt.sh 我的天,它刚才竟然重新下载,立马ctrl+C终止它下载,我的手机流量剩的不多了…看到我框起来的,懂的人已经知道为什么了… 这是火锅的错,在线文档说用5.11.3,而pdf说用5.14.1,懵逼不,其实我在另一台电脑装的是5.14.1,现在为了演示,就顺着5.11.3来。 当下有两个解决思路: 要么在脚本里把这个版本号修改过来,让脚本匹配已经下载了的源码包版本号。 要么重新下载5.11.3版本的源码包,让源码包匹配脚本。 我觉得在线文档应该是比较新的方法?那就按照它说的,装5.11.3 重新下载源码包: 我选择自己科学上网下载该源码包,为什么不从野火网盘下,或者既然能科学上网了,又为啥不直接用脚本下?主要是求稳如老狗,时间在分分钟溜走… 如图,看到网盘里那1.96G,那网盘网速我怕了,而且里面还有其他文件,没必要全下,而且是压缩包的形式,看不到里面装的啥版本,万一下了,仍是5.14.1,,而不是我们要的版本呢?(后面下了网盘的,仍是5.14.1,我的乖乖,还好当时没等着它…) 科学上网几分钟下载好了,通过共享文件夹放进来: 得套路者得人心… 继续执行qt源码编译脚本,报了这个问题,预感到这次编译肯定有问题的,不急,先让子弹飞一会。。。 果然出错: .make: g++: Command not found 对症下药:升降级处理这个g++ sudo apt-get install aptitude sudo aptitude install g++ 前面安装vim的时候也碰过这类似的,似曾相识吧? 先选n(为啥选n?它既然都说了,保持下列软件包于其当前版本,如果选y,那还是维持原样,那我执行这命令干啥…,就是让它变变变) 后选y (看着提示来) 执行结束后,输入 g++ -v看看: O了,解决该g++问题,把之前解压出来的qt…文件删除掉,然后继续执行编译脚本: build-qt.sh 执行过程: 我的4G内存电脑正常编译大概半个钟… 终于编译结束,没有看到有Error或者找不到某某提示… 编译前面几个包的时候只要没看到Error提示,或者not found字样 我都认为安装成功了。 而这次编译qt源码,如何知道真的编译成功了? 配置环境 来自一位学友的疑问:为啥不直接这样导出?因为下次重启,你还得这样导一遍…,先跟我来 同理,和一开始的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,手动打进去。(为了求稳,我选中从它编译好的去复制)。其实到这里聪明的人已经学会直接从文档复制粘贴整个过来了,对比一下是一模一样的…。 接着:sudo vi /etc/profile 在后面添加如下:exportPATH=/opt/qt-everywhere-src-5.11.3/bin PATH 立即生效环境变量: source /etc/profile qmake -v 看到此 OK了 ! 现在所有的环境配置足以使用命令行正常编译出能在板子上运行的qt代码了。 来不及在ubuntu里安装qt-opensource-linux-x64-5.xx.x.run
了,先从其他地方搞个代码过来,编译试一试? 从别的地方拷贝analogclock(显示一个时钟)到PC端共享文件夹,然后在Ubuntu进入该共享文件夹, cd analogclock ls qmake make clean或者make distclean都可以 make编译 查看文件是什么类型: file analogclock 看到如下: analogclock: ELF 32-bit LSB executable,ARM, EABI5 version 1… 恭喜你,到此已经成功的编译qt程序了,懂事的人已经可以把他自己的代码放进去进行命令行编译,并且还上传到开发板运行成功了。。。
下期讲如何把这编译好的文件快乐地传到板子。
欢迎各大佬不吝补充指正。 文档的图很高清,到这就打马赛克了,某只嘿咩问题... 高清无码请下载文档 不是! 才发现了,在线编辑文档,图片会迷糊,发表之后就比较清晰了。 经验啊!!!害我编辑的时候没有好心情
结语:其实ubuntu的qt环境在一开始方向就对的话,(比如在/opt下再新建个文件夹,然后把脚本和安装包放里面)配置它也是一下子的事情,我为啥写的那么多,是想让一些学友体验一下社会的险恶。
|