gcc识别的文件扩展名中什么为c语言文件,Linux 编译器之 GCC

上一节我们学习了 vim 编辑器,接下来我们一起学习 gcc 编译器,这里,我们要区分编辑器和编译器有何不同?

编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!

编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。

GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,GCC 同样适用于微软的 Windows。

GCC 最初用于编译 C 语言,随着项目的发展 GCC 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。

这里只是简单介绍如何编译 C 程序或者 C++ 程序最终成为一个可执行程序。

gcc识别的文件扩展名如下:

.cC 语言文件

.i预处理后的 C 语言文件

.C、.cc、.cp、.cpp、.c++、.cxxC++语言文件

.ii预处理后的 C++ 语言文件

.S汇编文件(用户自己新建的汇编文件)

.s预处理后的汇编文件

.o编译后的目标文件

.a目标文件的静态链接库(链接时使用)

.so目标文件的动态链接库(链接、运行时使用)

gcc 和 g++ 编译器的编译过程

1、预处理

2、编译

3、汇编

4、链接

0818b9ca8b590ca3270a3433284dd417.png

gcc 常用编译应用实例

分步编译:

1)gcc -E hello.c -o hello.i

2)gcc -S hello.i -o hello.s

3)gcc -c hello.s -o hello.o

4)gcc    hello.o -o hello_elf

编译选项说明:

-o file指定生成的输出文件名为 file

-E只进行预处理

-S只进行预处理和编译

-c只进行预处理、编译和汇编

文件名后缀说明:

.cC 语言文件

.i预处理后的 C 语言文件

.s预处理后的汇编文件

.o编译后的目标文件

0818b9ca8b590ca3270a3433284dd417.png

程序编译成功后,通过“./”运行这个可执行程序。

常用编译(还是经过:预处理、编译、汇编、链接的过程):

gcc hello.c -o demo

0818b9ca8b590ca3270a3433284dd417.png

如果是 C++ 代码,只需改用 g++ 编译器即可。

如果没有 g++ 编译器,在线安装即可:

0818b9ca8b590ca3270a3433284dd417.png

使用 g++ 编译 c++ 程序:

0818b9ca8b590ca3270a3433284dd417.png

gcc、g++ 编译的其它一些选项

-v 显示制作gcc工具时的配置命令,显示预处理器、编译器的版本号

0818b9ca8b590ca3270a3433284dd417.png

-Wall生成所有级别的警告信息

-w关闭所有警告,建议不使用此选项

0818b9ca8b590ca3270a3433284dd417.png

-Idir将dir目录加入头文件搜索目录列表,优先在dir目录中查找包含的头文件

-Ldir  将dir目录加入库文件目录列表,优先在dir目录中查找库文件

-lname  链接库为name的库

-static  链接时使用静态库

-shared  编译动态库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值