zoukankan      html  css  js  c++  java
  • gcc编译选项

    GCC编译器


    常用选项

    -E:只进行预处理,不编译
    -S:只编译,不汇编
    -c:只编译、汇编,不链接
    -g:包含调试信息
    -I:指定include包含文件的搜索目录
    -o:输出成指定文件名

    高级选项

    -v:详细输出编译过程中所采用的每一个选项
    -C:预处理时保留注释信息
    -ggdb:在可执行文件中包含可供GDB使用的调试信息
    -fverbose-asm:在编译成汇编语言时,把C变量的名称作为汇编语言中的注释
    -save-temps:自动输出预处理文件、汇编文件、对象文件,编译正常进行
    -fsyntax-only:只测试源文件语法是否正确,不会进行任何编译操作
    -ffreestanding:编译成独立程序,而非宿主程序

    语言标准

    -ansi:ANSI标准
    -std=c99:C99标准
    -std=gnu89:ISO/IEC 9899:1990 以及GNU扩充
    -std=gnu99:ISO/IEC 9899:1999 以及GNU扩充
    -trigraphs:支持ISO C三字符组

    出错提示

    -w:忽略所有警告
    -Werror:不区分警告和错误,遇到任何警告都停止编译
    -Wall:开启大部分警告提示
    -Wshadow:某语句块作用域变量与更大作用域的另一变量同名时发出警告(此警告未包含在-Wall选项中,需单独开启)
    -Wextra:对所有合法但值得怀疑的表达式发出警告

    优化选项(参数是字母o的大写,后面一个是阿拉伯数字)

    -O0:关闭所有优化选项
    -O1:第一级别优化,使用此选项可使可执行文件更小、运行更快,并不会增加太多编译时间,可以简写为-O
    -O2:第二级别优化,采用了几乎所有的优化技术,使用此选项会延长编译时间
    -O3:第三级别优化,在-O2的基础上增加了产生inline函数、使用寄存器等优化技术
    -Os:此选项类似于-O2,作用是优化所占用的空间,但不会进行性能优化,常用于生成最终版本

    ## 引用

    -------------------------------------------------

    http://blog.csdn.net/rheostat/article/details/19811407

  • 相关阅读:
    佛经中的 云何梵 什么意思?
    论节拍器的重要性,一定要习惯使用。
    Linux文件系统分析
    uboot启动内核分析
    Linux内核启动流程分析
    Linux内核配置机制与编译过程分析
    Linux内核源码目录结构分析
    Kconfig文件分析
    Ubuntu下安装make
    Ubuntu下交叉编译器gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12的安装和使用
  • 原文地址:https://www.cnblogs.com/jiftle/p/7155643.html
Copyright © 2011-2022 走看看