C语言作为一种高级语言,机器无法识别,因此需要编译器将其转换为机器可以识别的二进制指令。c语言出现已有50多年的历史,相关的编译器种类繁多,从最早的turbo c系列编译器到著名的gcc和基于LLVM的clang,各有优缺点,在许多平台(如windows、Linux和MAC)上都有广泛应用。同时,由于Windows的强大存在,其自带的Visual C/C++编译器也有很多应用。
一般来说,C语言程序是在PC上编写的,编译成可执行文件,最后放在计算机或设备上执行。
目前,主流PC的CPU架构和操作系统有多种组合,其编译生成的可执行程序可能在不同的架构下执行。因此,对于同一种编译器,CPU架构和系统组合可能需要相应的版本。
注:苹果的ARM架构CPU M1将用于2022年最新的MAC pro笔记本电脑。
编译器一般分为两种情况(如下例):
a .在X86+Windows系统下编译C程序可以直接在X86+Windows系统的PC上执行;
b、在X86+Windows系统下,需要x86-Arm交叉编译器编译C程序后才能在Arm平台设备上执行;
因此,需要根据开发编译平台和目标运行平台选择编译器类别,有些IDE集成了官方对应的C编译,因此安装后即可使用,例如:
1.对于Visual C/C++编译器,集成开发环境Visual Studio也集成了Visual C/C++编译器。安装Visual Studio后,您可以在IDE中编辑/编译C程序。
2.对于ARM(R/M系列)和8051系列,交叉编译器环境可能已经集成在集成开发环境(IDE)中。例如,ARMCC交叉编译器已经集成在MDK KEIL中。安装MDK后,您可以在IDE中编辑/编译C程序。
C编译器有很多。以下是一些主流的C编译器!首先是著名的GCC编译器。
一。GCC编译器
GCC是(GNU Compiler Collection)的缩写,它是由GNU开发的编程语言翻译器。它最初是为C语言编写的,现已扩展到C++、Objective-C、Fortran、Ja、Ada和Go,包括它们的库(如libstdc++、libgcj等。),所以GCC是一个GNU编译器套件。
Gcc编译器镜像可以从其官方FTP服务器下载,最新版本是gcc-11.2.0。
1、用于ARM的gcc
现在的手机处理器基本都是基于ARM架构的,很多智能设备的CPU核心或者物联网设备中的嵌入式芯片也是基于ARM的。因此,ARM公司正在不断更新和维护ARM架构的跨C编译器。
从1985年ARMv1芯片的设计到现在的ARMv9,ARM已经有30多年的历史了。下表显示了每种架构的典型处理器版本:
目前ARMv7和ARMv8被广泛使用;ARMv7广泛应用于智能设备芯片和微处理器MCU。例如,恩智浦推出的IM6ULL使用ARM Cortex-A7,ST推出的STM32F4使用ARM Cortex-M4。目前,流行的手机处理器基本上都在Cortex-A系列的ARMv8架构中。例如,华为P50系列的麒麟9000处理器现在使用ARM Cortex-A77,小米11系列的骁龙888处理器使用ARM Cortex-A78。因此,从理论上讲,骁龙888处理器将优于麒麟9000处理器。
ARMv9架构是ARM今年刚刚推出的全新下一代架构。首款基于Armv9架构的大核CPU Arm Cortex-A710和首款高效小核Arm Cortex-A510手机预计将于明年问世。
ARMv8的架构继承了前代ARMv7和前代处理器技术的基础。除了现有的16/32位Thumb2指令支持外,它还兼容并扩展了现有A32(ARM 32位)指令集的AArch32架构,并添加了基于64位的AArch64架构。
基于32位ARM cortex-a、arm cortex-m和arm cortex-r处理器的GCC交叉编译工具链(基本在ARMv7架构下使用)。arm开发者网站提供下载,包括Windows、Linux、Mac OS X操作系统平台。最新版本为10.3-2021.07,下载地址为:
https://developer . arm . com/tools-and-software/开源软件/developer-tools/GNU-tool chain/GNU-RM/downloads
A.基于AAR ch 32(32位扩展版本)和AAR ch 64(64位新版本)的交叉编译器(在ARMv8框架下),ARM开发者网站提供下载,包括Windows、Linux、Mac OS X操作系统平台。目前最新版本为10.3-2021.07,下载地址为:
https://developer . arm . com/tools-and-software/开源软件/developer-tools/GNU-tool chain/GNU-a/downloads
2.Linux下的gcc编译器。
Linux通常带有gcc编译器。您可以通过GCC–V检查其版本号,如下所示:
从打印的信息“Target:x86-64-linux-gnu”中,我们可以看到默认的gcc编译器是针对x86架构的,因此编译后的可执行文件只能在x86架构下执行;一般来说,C程序是在Linux下开发和编译的,然后在ARM下执行,因此需要安装一个交叉编译的C编译器。
您可以在ARM官网上下载最新版本,或者芯片制造商将提供相应的修改版本。同时,一些第三方组织提供了修改后的编译器版本,如Linaro GCC编译器,下载地址为:
https://snapshots.linaro.org/components/toolchain/
按照上述四个步骤下载gcc-linaro-4 . 9 . 4-2017.01-x86 _ 64 _ arm-Linux-gnueabihf.tar的编译器,上传到ubuntu系统,复制到/usr/local/arm目录下,对交叉编译工具进行解压缩。解压缩命令如下:sudo tar–vxfgcc-linaro-4 . 9 . 4-2017.01-x86 _ 64 _ arm-Linux-gnueabihf.tar。解压缩后将生成一个名为gcc-linaro-4 . 9 . 4-2017.01-x86 _ 64 _ arm的文件。
然后修改环境变量,执行sudo vi /etc/profile命令打开/etc/profile文件,并在文件末尾添加PATH路径,这样就成功安装了交叉编译工具链。
最后,执行命令sudo apt-get install ls B- corelib 32 stdc++ 6来安装标准C库,然后读取版本号以验证工具链是否安装正确。
3.Windows下的gcc编译器。
3.1、MinGW-w64编译器
MinGW-w64编译器是gcc编译器的Windows版本。MinGW的全名是:Windows上的极简GNU。它也是一个特定于Windows的头文件集合,可以自由使用和发布,并使用GNU工具集导入库。它使用Windows的C语言运行时,可以将C源代码编译成Windows下的可执行文件。
转到MinGW-w64下载最新版本的编译器:
http://www.mingw-w64.org/doku.php
最新版本为V.9.0.0点击下载下载并进入下载页面。MinGW-w64的代码和可执行文件存储在SourceForge中,链接地址如下:
https://SourceForge . net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
下拉找到可执行文件MinGW-W64-install.exe,下载并双击安装它,无需编译源代码。
您需要连接到网络才能在线安装mingw-w64-install.exe。选择版本和主机架构后,将自动下载mingw组件。
下载组件后,各种工具,如gcc.exe,g++。exe和gdb.exe都包含在bin目录中,并且bin文件夹路径被添加到系统环境变量PATH中。至此,mingw的安装完成。
验证mingw编译功能。
3.2.集成开发环境(IDE)
上面用mingw编译C语言是命令行的形式,对于学习C语言来说非常清晰。但是,在开发项目时,有大量的C文件,逐个编译它们是不现实的。因此需要编写makefile来统一编译和管理,所以又回到了Linux下的C语言编程,没有体现出Windows桌面系统的优势。因此,在Windows下,许多集成开发环境(IDE)都集成了MinGW编译器。PC应用程序开发的工具包括QT、Code::Blocks、Dev C++、C-Free等。嵌入式开发工具包括MDK(KEIL)、IAR等。
三、QT
QT是一个跨平台的开发环境,可以在WINDOWS/LINUX/MAC下使用。同一组代码可以在三个平台下编译,为每个平台生成应用程序。下载的官方网站如下:
https://download.qt.io/archive/qt/;
目前最新版本是6.1,请选择合适的版本下载安装,QT在安装时可以选择匹配的MinGW版本,方便编写C/C++项目工程时一键编译。
代码::块
Blocks是一个免费的C/ c++和Fortran IDE,它集成了MinGW编译器。官方下载地址如下:https://www.codeblocks.org/downloads/.
下载后可以直接安装。
3.2.3、开发C++
Devc ++是一个带有嵌入式GCC编译器(GCC编译器的Windows移植版本,即MinGW)的免费Windows集成开发程序,是NOI和NOIP等比赛的指定工具。Dev C++的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。
下载地址:https://sourceforge.net/projects/orwelldevcpp/或https://bloodshed-dev-c.en.softonic.com/
下载Dev C++后,您将获得一个安装包(。exe程序)。双击该文件开始安装。
不含碳
C-Free是一个集成开发环境(IDE),它支持各种专业的C/C++编译器。用户可以轻松地编辑、编译、连接、运行和调试C/C++程序。Visual Studio庞大臃肿,而C-Free只有14M,非常轻量级,易于安装,可以自由切换编译器。C-Free的最新版本是5.0。注册费用为80元人民币,你可以免费试用30天。如果到期后不注册,您将无法使用它。C-Free还提供了永久免费版本,可以无限期使用。版本号是4.0。
官方下载地址:https://c-free.soft32.com/.
C-Free可以配置MinGW 2.95/3.x/4.x/5.0编译器。
凯尔
在基于Cortex-M或8051系列MCU的嵌入式开发中,许多优秀的ide也集成了交叉编译工具。例如,德国的Keil公司开发了几个用于ARM系列和8051系列的集成ide,内部集成了编译器(ARMCC,Keil C)。这些编译器是集成的交叉编译器,即在windows下编译,生成的可执行程序在ARM或51内核中执行。
官方下载地址:https://www.keil.com/download/product/.
3.2.6、IAR嵌入式工作台
总部位于北欧的瑞典IAR公司的集成开发环境IAR Embedded Workbench也致力于Cortex-M或8051系列MCU的嵌入式开发。IAR也是一个与IAR C/ C++集成的编译器。
官方下载地址:https://www.iar.com/products/#/search.
IAR工具有30天的免费试用期。如果你自己学会使用它们,你就可以破解它们。
4.Mac下的gcc编译器。
在Mac OS X 10.4版本之前,Mac也使用gcc编译器编译Object-C。在Mac OS X 10.5版本之后,LLVM-Clang编译器开始逐渐取代gcc编译器成为Mac的主要编译器。因此,MAC OS X系统默认不再安装gcc等工具,有时可能需要在MAC OS X下编译开源软件项目。因此,以下是一些常见的GCC安装方法(从其他博主的安装方法中总结而来)。
4.1、命令行工具
作为XCODE IDE的可选软件包,即命令行工具,命令行工具为mac最终用户提供了许多常用工具,如实用程序和编译器,包括svn、git、make、GCC、clang、perl、size、strip、strings、libtool、cpp、what等。因此,命令行工具的安装包括GCC编译器软件,并且有几种安装命令行工具的方法。
4.1.1.通过XCODE安装
安装XCODE后,默认情况下不会安装命令行工具,但可以通过菜单直观地安装命令行工具,如下图所示:
4.1.2.通过命令行工具安装软件包。
XCODE软件非常大,有几十个G空,所以你可以选择下载安装命令行工具的安装包,前提是你有苹果开发者账号,登录开发者网站下载xx . mpkg https://developer.apple.com/cn/.的安装包
4.1.3.通过xcode-select -install命令安装。
命令xcode-select是一个在多个命令行工具目录之间切换的实用程序,具有以下相关命令选项:
a、xcode-select【-help】;查看帮助
b、xcode-select【-switch xcode _ folder _ path】;切换xcode版本
xcode-select【-print-path】;查看当前版本xcode路径
d、xcode-select【-版本】;查看xcode版本
e、xcode-select【–install】;安装xcode工具
xcode-select -install命令的安装方法如下:
4.2、通过brew软件包管理工具安装
A.安装包管理工具。终端终端执行以下指令(国内安装源)来安装home brew:
安装完整版本:
/bin/zsh-c & # 34;$(curl-fsSL https://gitee . com/Cun kai/home brew cn/raw/master/home brew . sh)& # 34;
安装简化版本:
/bin/zsh-c & # 34;$(curl-fsSL https://gitee . com/Cun kai/home brew cn/raw/master/home brew . sh)& # 34;快速卸载脚本:
/bin/zsh-c & # 34;$(curl-fsSL https://gitee . com/Cun kai/home brew cn/raw/master/home brew uninstall . sh)& # 34;安装错误查询地址:
https://gitee.com/cunkai/HomebrewCN/blob/master/error.md
B.执行brew install gcc指令来安装gcc。
C.执行gcc–v来检查版本。
发现gcc在执行过程中被映射到clang,因此后续对gcc的调用需要带上版本号,例如GCC-10–V;编译器是相同的:gcc-10 main . CPP-omain app-lst dc++。
4.3.通过gcc安装包安装
a .从gcc托管网站sourceforge下载所需的gcc版本,如下所示:
https://sourceforge.net/projects/hpc/files/hpc/gcc/;
b .打开终端terminal,进入gcc-9.2-bin.tar.gz压缩包所在的目录,然后进行解压缩:
gunzip gcc-9.2-bin . tar . gzsudotar-xvfgcc-9.2-bin . tarc,添加环境变量,打开配置文件touch ~/。bash_profile,并添加路径:
d、激活配置:source ~/。bash_profile,然后通过gcc -version检查版本信息:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。