博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
讲下我对交叉编译理解-QT篇-一
阅读量:4178 次
发布时间:2019-05-26

本文共 714 字,大约阅读时间需要 2 分钟。

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从板子上获取

转载地址:http://dglai.baihongyu.com/

你可能感兴趣的文章
记录切换openjdk遇到的一个坑
查看>>
Lombok---@EqualsAndHashCode(callSuper = true)的使用
查看>>
Java实体映射工具 MapStruct的简单应用
查看>>
IDEA中的Git操作
查看>>
sharding-jdbc配置主从数据库
查看>>
请求https跳过证书认证
查看>>
JDBC多线程插入大量数据.md
查看>>
MYSQL查看数据库相关信息
查看>>
JAVA多线程插入MYSQL数据库
查看>>
记录ajax 发送json数据时引发的问题
查看>>
Chrome在Win下的跨域解决方案
查看>>
SpringBoot 快速下载最新的版本依赖
查看>>
Maven-dependencyManagement的使用
查看>>
springcloud 配置 spring.cloud.config.uri 无效
查看>>
第七篇: 分布式配置中心(Greenwich版)
查看>>
.properties文件 git 提交后中文字符会乱码
查看>>
第八篇: Spring Cloud Bus(Hoxton版本)
查看>>
sqlserver出现文件组‘PRIMARY‘已满
查看>>
Idea移除和重新导入Maven工程module
查看>>
第九篇: Spring Cloud Sleuth(Hoxton版本)
查看>>