zoukankan      html  css  js  c++  java
  • gcc编译器

    gcc/g++在执行编译的时候,只要分四个阶段 :
    1、预处理阶段,完成宏定义和include文件展开等工作;                                 [预处理器cpp]
    2、根据编译参数进行不同程度的优化,编译成汇编代码,生成.s的文件 ;             [编译器egcs]
    3、用汇编器把汇编代码进一步生成目标代码,生成.o的文件;                          [汇编器as]
    4、用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件; [链接器ld] 

    gcc常用编译选项:
    -E               只运行C预编译器cpp,不生成文件
    -S               只把文件编译成为汇编代码
    -c                只生成object文件,不链接
    -o                生成指定的输出文件
    -g                生成可被gdb使用的标准调试信息
    -IDIR           指定额外的头文件搜索路径DIR
    -LDIR           指定额外的库函数搜索路径DIR
    -lLIBRARY    指定链接时需要的其它函数库“ LIBRARY”
    -w               不生成任何警告信息
    -Wall           生成所有级别的警告信息
    -shared       生成支持动态共享库的执行文件
    -static         不支持动态共享库,把函数库内容静态链接到可执行程序中
    -O0             不进行代码优化处理
    -O,O1         进行一般优化,减少大小和时间
    -O2              进一步优化,一般在内核编译时使用
    -O3              较-O2进一步优化 

  • 相关阅读:
    Xcode7 真机调试步骤以及遇到的问题解决办法
    AndroidStudio .gitinore编写
    Android Studio Jar、so、library项目依赖
    Android studio导入eclipse项目混淆打包出错
    spring中ref属性与<ref/>标签
    NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.servlet.view.InternalResourceViewResolver' available
    Maven学习笔记
    Tomcat日志与Log4j日志
    Git笔记
    Tomcat学习
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3344667.html
Copyright © 2011-2022 走看看