c语言概述

编译和执行C程序

  

一般高级语言程序编译的过程:预处理、编译、汇编、链接
预处理是C语言程序从源代码变成可执行程序的第一步,主要是C语言编译器对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等
编译之前,C语言编译器会进行词法分析、语法分析,接着会把源代码翻译成中间语言,即汇编语言.大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件
把作为中间结果的汇编代码翻译成了机器代码,即目标代码,不过它还不可以运行
链接是处理可重定位文件,把它们的各种符号引用和符号定义转换为可执行文件中的合适信息.本步骤将库文件及上一步生成的二进制文件组装成为最终的可执行文件。

gcc概述

目前Linux下最常用的C语言编译器是gcc(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。
在Fedora, Red Hat等Linux发行版下安装gcc的命令是:
yum install gcc
如果需要使用C++编译器,则使用下面的命令:
yum install gcc-c++
安装完成后,使用以下命令验证是否安装成功
gcc --version
gcc语法

gcc编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。gcc最基本的用法是∶
gcc [options] [filenames] 
其中options就是编译器所需要的参数,filenames给出相关的文件名称。
-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 
-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 
-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理
-O2,比-O更好的优化编译、连接,整个编译、连接过程会更慢
gcc [options] [filenames] 
-S,只编译不汇编,生成汇编代码
-E,只预处理,不做其他处理
-I dir, 在头文件的搜索路径中添加dir目录
-L dir,  在库文件的搜索路径中添加dir目录
-w 禁止所有警告
-Wall 启用所有警告信息
-Werror 发生警告时取消编译操作


gcc示例

查看gcc 版本,使用-v 或 –version 开关

gcc示例-编译选项





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值