前言:
对于嵌入式Linux的开发,C语言应该是第一重要的知识。
大家学习C语言一般都是通过Windows环境下IDE进行学习,比较老的有VC++6.0,新一些的比如DEV C++, CodeBlocks等,当然还有一些比较大型的软件,比如visual studio等。这些软件都可以通过简单的安装就可以实现图形化的编辑及编译功能。
Windows C语言IDE 分享
链接:https://pan.baidu.com/s/126dX8NqK-HfAToOMoFYK0g
提取码:t7mk
而在Linux环境下,则一般是通过GCC编译器和Makefile来实现,本篇主要先介绍Linux GCC知识,下一篇介绍Linux Makefile知识。
正文:
GCC概念
GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。
GCC(GNU Compiler Collection,意思是GNU编译器集合)是由GNU开发的编程语言编译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由 。
目前最新版本已经更新到 12.2。
在Ubuntu上,我们可以通过如下命令查看GCC编译器的版本号。
gcc -v
最后下面的“gcc version 5.4.0”说明本机的 GCC 编译器版本为 5.4.0的。
更多GCC信息可以参考:GCC, the GNU Compiler Collection- GNU Project
GCC编译代码实践
首先通过touch命令创建main.c文件,然后使用vim编辑文件。
touch main.c
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
编译代码,可以发现生成了一个a.out文件,这个文件就是编译生成的可执行文件。
gcc main.c
执行代码
./a.out
当然这里实现了最简单的一个case,实际GCC有很多参数,可以参考另一篇总结。
GCC常用命令总结
链接:GCC常用命令总结_CodeAllen嵌入式编程的博客-CSDN博客
另外这个过程对于初学者可以先忽略,但是后期还是有必要了解这个简单的过程发送了什么,可以参考下文,详细说明了GCC的编译流程底层发生了什么。