zoukankan      html  css  js  c++  java
  • 【Linux】GCC编译

    • GCC简介
    • GCC基本用法
    • GCC程序产生过程
    • GCC编译选项

    一、GCC简介

    1.1 GCC特点

    Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的
    代表作之一。Gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器
    相比平均效率要高20%~30%。

    1.2 Gcc基本用法

    Gcc最基本的用法是∶

    gcc [options] filenames
    options:编译器所需要的编译选项
    filenames: 要编译的文件名
    

    二、GCC程序产生过程

    三、GCC文件后缀

    Gcc通过后缀来区别输入文件的类别,常见类型有:

    • .c为后缀的文件: C语言源代码文件
    • .a为后缀的文件: 是由目标文件构成的库文件
    • .C,.cc或.cxx 为后缀的文件: 是C++源代码文件
    • .h为后缀的文件: 头文件
    • .o为后缀的文件: 是编译后的目标文件
    • .s为后缀的文件: 是汇编语言源代码文件

    四、GCC常见编译选项

    -o output_filename

    确定可执行文件的名称为output_filename。如果不给出这个选项,gcc就
    给出预设的可执行文件a.out。

    -O (大写O ,程序优化)
    • -O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行
      优化处理,这样产生的可执行文件的执行效率可以提高,但是编译、连接的速度就相应地要慢一些。
    • -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。
    //比较运行结果
    1. gcc optimize.c -o optimize
    time ./optimize
    2. gcc –O optimize.c -o optimize
    time ./optimize
    
    -c:不链接。编译器只是由输入的.c等源代码

    文件编译生成.o为后缀的中间文件。

    -g:

    产生调试工具(GNU的gdb)所需要的符号信息,要想对编译出的程序进行调试,就必须加入这个选项

    -I dirname:

    将dirname所指出的目录作为编译器寻找头文件的标
    准路径。
    C程序中的头文件包含两种情况∶

    • include <A.h>

    • include “B.h”

    • 尖括号和引号的区别

    对于<>,gcc在系统预设的头文件目录(如/usr/include)中搜寻
    相应的文件;而对于””,gcc在当前目录中搜寻头文件。
    -I选项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找(批量添加自定义头文件路径)

    例:gcc hello.c -I /home/Louis/Desktop -o hello
    
    编译警告

    编译错误与编译警告都是我们的程序设计中经常遇到的问题. 编译错误一般是代码中出现语法错误,程序无法编译执行,必须修改. 编译警告是编译器发现程序中不合理的地方(比如类型不匹配),建议最好修改,但不修改也可以编译执行。

    • -Wall:生成所有警告信息
    • -w:不生成任何警告信息
    -DMACRO:

    定义MACRO 宏,等效于在程序中使用#define MACRO

  • 相关阅读:
    燕园笔记之一——穿梭
    openvc学习笔记(1)——简单应用
    匆匆过客
    opencv学习(3)——高斯平滑图像
    为什么(win10系统)电脑上面的鼠标(触摸板)突然用不了?怎么开启和关闭、
    SqlServer自动备份数据库
    CodeSmith批量生成实体类
    XML文件的序列化和反序列化
    AjaxPro的使用
    设计模式之——策略模式
  • 原文地址:https://www.cnblogs.com/Neo007/p/7229439.html
Copyright © 2011-2022 走看看