在Liunx环境下编译程序和在Windows下是不一样的,一般在命令行下编译代码。在Linux下,我们一般使用gcc或arm-linux-gcc 交叉编译器来编译程序。
一.安装gcc
使用apt-get命令来安装这些编译工具:
apt-get install gcc
apt-get install gcc-arm-linux-gnueabi
安装完毕后,使用下面的命令可以查看编译器的版本:
gcc -v
如果安装成功,则会显示如下信息
二.使用gcc编译C源程序
安装成功后,就可以使用gcc命令来编译C源程序了。gcc是GCC编译器工具集中的一个应用程序,用来编译我们的C程序。
在linux环境下编写一个简单的C程序:
使用 vim 新建并打开一个.c文件:
vim hello.c
按键盘按键 i 进入 输入模式,编写代码:
#include<stdio.h>
int main(){
printf("hello world\n");
return 0;
}
按 Esc 键退出输入模式,输入 :wq 保存并退出文件
然后就可以使用 gcc 命令来编译 .c 源文件:
gcc -o hello hello.c
输入 ./hello 执行文件,显示如下结果
三.gcc编译过程
gcc在编译 .c 源文件时,会依次调用预处理器、编译器、汇编器、链接器,最后生成可以执行的二进制文件。我们可以通过gcc的编译参数来控制程序的编译过程
- -E:只对源程序进行预处理,不编译
- -S:只编译到汇编文件,不再汇编
- -c:只编译生成目标文件,不进行链接
- -o:指定输出的可执行文件名(不指定时,默认生成可执行文件为 a.out)
- -g:生成带有调试信息的debug文件
- -O2:代码编译优化等级,一般选择2
- -W:在编译中开启警告信息
- -I(大写 i ):在编译时指定头文件的信息
- -l:指定程序使用的函数库
- -L:指定函数库的路径