本文主要是介绍讲下我对交叉编译理解-QT篇-一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、前言
许多玩PC端的同学,一下转到嵌入式端就有一些懵圈了。
因为windows系统对我们来说好像都是一样的,没什么太大的区别。
换到linux平台上很不适应,因为不是所有的linux平台都像Ubuntu那样,apt-get update & install就可以搞定大部分的事情
弄个啥都要涉及到交叉编译,搭建交叉编译工具有时会让人崩溃
2、什么是交叉编译
在平台A上编译能在平台B上跑的应用程序
交叉编译工具其实和我们普通的VS编译器原理没有什么区别,唯一的区别就是交叉编译工具安装有时需要手动去配置一下。
而这些在windows上都傻瓜化了。
3、QTcreator里qmake到底是干什么用的?
执行qmake后,如果是勾了Shadow Build,可以在对应的文件里发现生成了Makefile文件
打开Makefile看,假如qmake是用该平台的交叉工具生成的,就会看到cc不再是熟悉的gcc和g++。
替代它们的是arm-linux-gcc,arm-linux-g++
4、QTcreator里build做了哪些工作
实际上就相当于运行Makefile
5、sysroot是啥?
sysroot顾名思义,就是system root,交叉编译平台它的根目录。
所有相关的头文件、lib都包含在那
为什么需要它呢,因为我们交叉编译工具一般只包含几个常用的库,假如稍微大点程序用到其它库和头文件。
没有这个sysroot,然后编译器就去找Ubuntu本地的头文件和lib,结果就会导致各种各样奇怪的bug
sysroot一般和交叉编译工具一起组成SDK开发包,有时候没有,就需使用同步服务器 工具rsync从板子上获取
这篇关于讲下我对交叉编译理解-QT篇-一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!