zoukankan      html  css  js  c++  java
  • gcc options选项的优化及选择

    gcc options选项的优化

    -c和-o都是gcc编译器的可选参数【options】

    -c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。【只编译不链接】
    -o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。【指定输出文件名】

    -g 可执行程序包含调试信息【调试】


    例如
    gcc -c test.c     将生成test.o的目标文件 , 
    产生.o文件,就是obj文件,不产生执行文件


    gcc -o hello test.c     将生成可执行程序hello

    gcc -c file.c -o file.o表示把源文件file.c编译成指定文件名file.o的中间目标文件(其实在这里,你把-o file.o省掉,效果是一样的,因为中间文件默认与源文件同名,只是后缀变化)。

    options常用编译选项:

    优化选项:-O      //大写字母的O

    -O0:不做任何优化,这是默认的编译选项。 

    -O1:  编译器会尝试减小生成代码的尺寸,以及缩短执行时间.它主要对代码的分支,常量以及表达式等进行优化,其中包括线程跳转和延迟退栈。

    -O2:除了完成所有-O1级别的优化之外,同时还进行一些额外的调整工作,如处理指令调度等。会尝试更多的寄存器级的优化以及指令级的优化,编译器并不进行循环打开()loop unrolling以及函数内联。与O1比较而言,O2优化增加了编译时间的基础上,提高了生成代码的执行效率。 

    -O3:除了完成所有-O2级别的优化之外,还包括循环展开和其他一些与处理器特性相关的优化工作,例如使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化。

    数字越大优化等级越高,也就是意味着对复杂的程序运行更适配,一般选择-O2(个人选择),一个比较理想的平衡点。

    tianjiale菜鸟名企梦
  • 相关阅读:
    entityframework学习笔记--002-database first
    ServletContext总结
    form 表单提交类型
    对称加密与非对称加密
    跨域详解
    https工作原理
    Entity Framework数据库初始化四种策略
    Modbus 协议解析
    CAFFE(FAQ.2):Ubuntu 配置caffe 框架之数据库读取,错误解决:ImportError: No module named leveldb解决办法
    CAFFE(0):Ubuntu 下安装anaconda2和anaconda3
  • 原文地址:https://www.cnblogs.com/tianjiale/p/9755454.html
Copyright © 2011-2022 走看看