gcc--编译

2017-11-13 11:18:15来源:CSDN作者:CSDN_LSD人点击

分享
第七城市

gcc的发展


  • GNU(非洲牛羚)项目,又称革奴项目,是由Richad Stallman在1983创办。
  • 1985年,Richad Stallman又创立了自由软件基金会(Free Software Foundation),简称FSF,来为GNU提供技术、法律、财政支持。
  • gcc就是GNU开发出来的一款编译器软件,gcc是GNU CC的简称。
  • gcc符合ANSI C标准,能够编译c、c++、object c等语言编写的程序。gcc还是一个交叉平台编译器,能够在当前cpu平台为多种不同架构的硬件平台开发、编译软件,因此适合嵌入式领域的开发编译。
  • gcc是免费的,可移植。

http://blog.csdn.net/wait_nothing_alone/article/details/66061134
http://blog.csdn.net/chensilly8888/article/details/41956777

gcc的语法结构


  • gcc [option][filename] [option][filename] [option][filename]
    • options:
      • -c只编译不链接,生成目标文件.o。
      • -S只编译不汇编,生成汇编代码。
      • -E只进行预编译,不做其它处理。
      • -g在可执行程序中包含标准调试信息。
      • -o file指定输出文件。
      • -v打印出编译器内部编译各过程的命令行信息和编译器的版本。
      • -std=name指定C语言的标准(c99)。
      • -I dir(i的大写)在头文件的搜索路径列表中添加dir目录。
    • filenames:
      • 要编译的文件名
      • 文件路径
    • MVC
      • gcc -c src/hello.c -I include -o obj/hello.o -Wall只编译不链接,生成目标文件obj/hello.o。
        • -c src/hello.c:[option][filename]
        • -o obj/hello.o:[option][filename]
        • -I include :[option][filename]
        • -Wall:[option][]
        • 块与块之间的不分顺序,但是块的内部要按顺序写。
        • 有些option可以单独使用
      • gcc src/hello.c -I include -o bin/hello -Wall生成可运行的文件bin/hello。
    • makefile
      • 编译用的脚本文件
    • time ./hello
      • 终端输出程序:从启动到运行结束的时间。

gcc优化选项


  • option:
    • -O减少代码的长度和执行时间,效果等价于-O1,其中包括线程跳转延迟退栈
    • -O2初完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,比如处理器指令调度等。
    • -O3除完成所有-O2级别的优化之外,还包括循环展开和其他一些与处理器特性相关的优化工作。
    • 数字越大优化的等级越高,也就意味着程序的运行速度越快,一般选项用-O2选项,它在优化长度、编译时间和代码大小之间取得了一个比较理想的平衡点。
    • gcc -O2 src/hello.c -I include -o bin/hello -Wall
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台