现在位置: 首页 > 交叉编译
接上篇《交叉编译知识解析(一) —— 交叉编译和交叉工具链》,在进行嵌入式开发过程中,用到的交叉编译器经常是这样的名称: arm-linux-gcc arm-none-linux-gnueabi-gcc arm-linux-gnu-gcc 上面对应的交叉编译器的前缀有arm-linux-, arm-none-linux-gnueabi-, arm-linux-gnu- 这些编译器同为ARM下的gcc编译器,不同的命名到底会导致这些编译器有哪些区别? 一. 交叉编译器命名规则 arch [-vendor][-kernel][-system] 其中每部分...
阅读全文
一、交叉编译简介 1、什么是交叉编译 1.1 本地编译   解释什么是交叉编译之前,先要明白一个概念:本地编译   我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下,当前电脑中,运行。   此时的编译,可以叫做,本地编译,即在当前目标平台下,编译出来的程序,也只是放到当前平台下,就可以运行的。...
阅读全文
2020-05-21 22:33 工业·编程 ⁄ 共 1464字 暂无评论
1.背景         将应用于X86_64的服务应用软件移植到ARM64位宿主机上;         编译主机UBUNTU 16.04 LTS  X86_64         目标主机UBUNTU 16.04 LTS  ARM64 2.安装工具链 1.确认编译工具链是否匹配         命令:gcc  -v       ...
阅读全文
2020-05-20 21:43 工业·编程 ⁄ 共 917字 暂无评论
1、readelf 我们通常理解的程序软件都是运行在操作系统之上的,但是有的程序不能在不同的操作系统之上运行。 这是因为: 我们最终编译出来的可执行程序分两部分:真正的程序文件以及头信息 不同操作系统的头的格式是不同的,Windows上称为PE头,Linux上称为ELF头。 这个头部信息是专门给操作系统识别的。 开发裸机的时候需要使用objcopy这个命令将头部信息取出来,留下真正的程序文件。 因为带有头文件的程序刚开始不是可执行代...
阅读全文
2020-05-19 21:33 工业·编程 ⁄ 共 1402字 暂无评论
在嵌入式系统开发中,经常会听到一个词:交叉编译。到底什么是"交叉编译"呢?为什么要使用"交叉编译"呢?今天这篇文章,我们来讨论下这个话题。 在讨论交叉编译之前,我们先来聊聊编译。 1、编译 在程序开发中,使用高级语言编写的代码被称为源代码,比如用C语言编写的后缀名为.c的文件,或者C++编写的后缀名为.cpp的文件。源代码不能被机器执行,必须转换成二进制的机器代码(指令+数据)才能被CPU执行。...
阅读全文