您所在的位置:首页 - 编程技巧 - 正文编程技巧
交叉编译器(交叉编译器下载)
admin
2024-03-08 14:22:30
【编程技巧】
208人阅读
有没有人在mac上安装过linuxx86的交叉编译器gcc?
Xcode Xcode运行于苹果公司的Mac操作系统下,是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X、iOS、C、C++、Objective-C和Java的应用程序。GCC GCC是由GNU开发的编程语言译器。
GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。
至于 command not found 。就要看你的交叉编译器目录的设置了。按你现在的目录,一般 gcc 在/opt/host/armv41/arm-unknown-linux/bin 里面。并不是真的全在一个 bin 里面(这里面只有 binutils 的东西)。
具体步骤如下:安装之前,必须保证系统中有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。
计算机linux中原有的gcc是针对通用的X86等处理器而言的,编译出来的可执行文件是只能在通用计算机上运行的,arm也是一种处理器,只不过其指令等和X86等CPU不同,所以需要有针对arm的编译器来编译源程序,才能在arm中运行。
arm-linux-gcc交叉编译器的制作,以及版本选择问题。
例如,编译内核时需要使用arm-linux-gcc-3版本的交叉编译工具链,而使用arm-linux-gcc-1的交叉编译工具链,则会导致编译失败。
一般一个完整的交叉编译器涉及到多个软件,主要包括bilinguals、cc、glibc等。其中,binutils主要生成一些辅助工具;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具,而glibc主要提供用户程序所需要的一些基本函数库。
如果你没有完全的把握保证你改的内核改完全了,就不要动内核,而是把你的 Linux 内核的版本号降低或升高,来适应 glibc。Gcc 的版本号,推荐用 gcc-95 以上的。太老的版本编译可能会出问题。
那么你一般可以看到你安装的arm-linux-gcc 版本信息,到此你就可以使用它编译你的源程序,然后将生成的可执行文件下载到arm开发板中就可以运行了。
因此,当在一个特定目标机下运行GCC时,GCC便在目录路径中查找包含该目标规范的应用程序路径。GNU的目标规范格式为CPU-PLATFORM-OS。例如,建立基于ARM平台的交叉工具链,目标平台名为arm-linux-gnu。
这首先是因为编译器在查找头文件的相对路径时,交叉编译器会配置为查找目标平台架构的位置,和主机的gcc不一样,这也是为什么它去arm-linux-gnueabihf这个目录去寻找的原因。
交叉编译器的举例
例如,编译内核时需要使用arm-linux-gcc-3版本的交叉编译工具链,而使用arm-linux-gcc-1的交叉编译工具链,则会导致编译失败。
有。可以通过在Mac上安装虚拟机或使用Docker等容器技术来模拟Linux环境,并在其中安装gcc进行交叉编译,还可以考虑使用MacPorts或Homebrew等包管理器来安装gcc。
交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(float point architecture),而没有FPA的CPU,比如三星的2440等,会使用FPE(float point emulation即软浮点),这样在速度上就会受到极大限制。
有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。综上,在嵌入式开发的时候我们就要使用交叉编译器。
宿主机一般是Linux系统,它编译的程序是要在嵌入式系统上运行而非在宿主机本地运行,那么宿主机需要使用某种特定的交叉编译器,编译出能在目标系统上运行的程序,这就是交叉编译。
交叉编译器的分类
1、两个交叉编译器分别适用于 armel 和 armhf 两个不同的架构,armel 和 armhf 这两种架构在对待浮点运算采取了不同的策略(有 fpu 的 arm 才能支持这两种浮点运算策略)。
2、正如所称的Chomsky架构(Chomsky Hierarchy),它包括了文法的四个层次:0型文法、1型文法、2型文法和3型文法,且其中的每一个都是其前者的特殊情况。
3、区别就是gcc是linux下的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc用来在linux下跨平台的C语言编译器,编译出来的程序在目标机(如ARM平台)上执行,嵌入式开发应使用嵌入式交叉编译工具链。
4、gcc编译器是款专业的c语言编辑工具,可用于c语言、c++、java、object-C等语言程序中去,支持交叉编译器,交叉语言设计,提供交叉编译环境,通过在命令列下键入一些命令参数,让编程更有效率。
5、许多人将高阶程序语言分为两类:编译型语言和 直译型语言 。然而,实际上,这些语言中的大多数既可用编译型实现也可用直译型实现,分类实际上反映的是那种语言常见的实现方式。(但是,某些直译型语言,很难用编译型实现。
交叉编译器的发展历史
本文将深入探讨编译程序语言的发展历程,从汇编语言到交叉编译,为读者呈现编程语言的创造之路。汇编语言的诞生第一个汇编语言的汇编器是如何诞生的呢?答案是直接手写二进制代码。
也就是 GNU编译器家族 的意思。当然,如今的GCC借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。直到现在,GCC的历史仍然在继续,它的传奇仍然被人所传颂。
而开放源码的编译器GCC,经过多年的发展,已能支持几乎所有知名厂商的处理器,是嵌入式软件开发中理想的交叉编译器。
GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。
然而,也存在从低阶语言到高阶语言的编译器,这类编译器中用来从由高阶语言生成的低阶语言代码重新生成高阶语言代码的又被叫做反编译器。
在cubemx中进行工程配置时我们交叉编译器环境选择哪种
到ST官网下载软件包和cube库,并安装好。
打开STM32cubeMX软件,点击New Project。选择对应开板MCU(STM32F103ZET6)。选择工程后进入工程界面,如下图所示。 配置外设。
首先,在Cubemx软件中选择您的MCU型号和相应的编译器。 在配置时钟树、GPIO、USART等硬件资源时,需根据操作系统的要求来完成相应的配置。
直观地进行STM32选择图形化配置C代码项目产生,涵盖STM32初始化部分。
我们可以在软件和硬件之间起桥梁作用,对于实体产品,有可能是软件出问题也可能是硬件出问题,一般是底层系统工程师比较容易找出问题。 当硬件、软件应用出现问题,他们解决不了时,从底层软件角度给他们出主意,给他们提供工具。
新建工程 打开STM32cubeMX软件,点击New Project。选择对应开板MCU(STM32F103ZET6)。选择工程后进入工程界面,如下图所示。 配置外设。
下一篇: google关键词工具(谷歌关键词搜索)