Linux编程基础1 GCC程序编译

来源:互联网 发布:万网域名注册阿里云 编辑:程序博客网 时间:2024/05/19 06:14

一 简介

        GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套GNU编译器套装以 GPL 及 LGPL许可证所发行的自由软件,也是 GNU 计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。

二 编译过程


2.1 编译包含一下四个步骤:
        1. 预处理(Pre-Processing)
        2. 编译(Compiling)
        3. 汇编(Assembling)

        4. 链接(Linking)


2.2 编译过程中涉及到的文件后缀以及文件类型如下:
        .c: C语言源代码文件 
        .a: 由目标文件构成的库文件
        .C, .cc或.cxx: C++源代码文件
        .h: 头文件
        .i:  已经预处理过的C源代码文件
        .ii:  已经预处理过的C++源代码文件
        .o: 编译后的目标文件
        .s: 汇编语言源代码文件

        .S: 经过预编译的汇编语言源代码文件


2.3 整个编译过程如图2.1所示:


                                     图2.1

三 gcc命令详解


2.1 gcc命令格式如下:

        gcc [options] [filenames] 


2.2 options可选参数如下:
        -o [output_filename]: 目标文件名
        -c: 只编译出.o
        -g: 编译带有调试信息,GDB调试用
        -O: 优化
        -O2: 更优化
        -I [include_folder_path]: 将目标目录加入gcc标准头文件目录
                注:#include<>: 从gcc标准头文件目录寻找文件,如/usr/include/
              注:#include"": 当前目录
        -L [library_folder_path]: 加入库文件目录路径
        -l [lib_name]: 引用库文件,路径需要在默认库路径或-L添加
        -static: 静态库链接文件
        -Wall: 生成所有警告信息
        -w: 不生成任何警告信息 
        -D: 相当于define
原创粉丝点击