简单快速了解gcc(新手入门)
来源:互联网 发布:淘宝网男鞋货到付款 编辑:程序博客网 时间:2024/05/19 00:17
- gcc简介
- gcc工作步骤
- gcc语法
- gcc常用选项
- 多源文件编译方法
刚安装上Linux系统,安好Vim的时候,还不知道该怎么用它,后来基本上用的很多的就是 vim xxx.c、gcc
xxx.c、./aout三步走,gcc的选项很多,全部记住会很难,所以我挑出来一些常用的选项,把这些整理下来
(其实这些应该是早早就应该了解的,一直拖到现在,实在不应该)
1.gcc简介
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,
编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可
以用来编译C/C++、FORTRANJAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言
2.gcc工作步骤
gcc/g++ 在执行编译工作的时候,总共需要 4 步
(1)预处理,生成.i的文件[调用预处理器cpp]
(2)将预处理后的文件转换成汇编语言,生成文件.s[调用编译器 gcc/egcs]
(3)由汇编变为目标代码(机器代码)生成.o的文件[调用汇编器as]
(4)连接目标代码,生成可执行程序[调用链接器ld]
3.gcc语法:
gcc (选项) (参数)
选项:
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码; -
-wall:显示警告信息;
-c:仅执行编译操作,不进行连接操作
参数:
C源文件:指定C语言源代码文件
4. gcc常用选项
(1)常规选项
无选项编译链接
gcc test.c
将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,结果会在与helloworld.c相同
的目录下产生一个a.out的可执行文件。
选项 -o
gcc test.c -o test
将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
选项-S
gcc -S test.c
产生一个名字为test.s的汇编源文件
选项 -c
gcc -c test.c
只编译,不链接,生成一个名为test.o的obj文件
选项-E
gcc -E test.c
只对文件进行预处理,不生成文件,预处理结果会显示在屏幕上,如需要保存可以重定向
(2)优化选项
选项 -O
gcc -O test.c
产生一个经过优化,名为a.out的可执行文件,也可以同时使用-o选项,以指定输出文件名
选项-O2
gcc -O2 test.c
进一步优化,产生一个经过最大优化,名为a.out的可执行文件
(3)调试选项
选项-g
gcc -g test.c
在编译的时候,产生调试信息,生成供gdb调试器可用的可执行文件
选项-pg
gcc -pg test.c
产生供gpro剖析用的可执行文件
5.多源文件编译方法
如果有多个源文件,基本有两种编译方法:
假设有两个源文件为test1.c和test2.c
多个文件一起编译
gcc test1.c test2.c -o test
将test1.c和test2.c分别编译后链接生成test可执行文件
分别编译各个源文件,之后对编译后输出的目标文件链接
gcc -c test1.c //将test1.c编译成test1.ogcc -c test2.c //将test2.c编译成test2.ogcc -o test1.c test2.c -o test //将test1.c和test2.c链接成test</span>
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的
文件,未修改的文件不用重新编译
- 简单快速了解gcc(新手入门)
- 【新手入门】一.Android架构简单了解
- GCC 新手入门
- GCC 新手入门
- GCC 新手入门
- GCC新手入门
- GCC新手入门
- Linux 学习笔记 gcc简单了解
- AHK新手入门知识了解
- [转]新手入门了解RFID术语
- java未来发展方向!新手入门了解
- swing (简单了解)
- 快速了解反射(Reflection)
- Github新手入门,简单使用方法!
- Github新手入门,简单使用方法!
- 新手入门简单算法
- 快速编写“专家级”makefile(1.从最简单的Makefile中了解规则)
- MySQL新手入门指南--快速参考
- 最好的8个Java RESTful框架
- uiautomator中UiWatcher学习笔记(6)
- 批量修改文件名
- 自定义控件,动画效果的进度圆环RingProgressBar
- holtek bs84c12A 单片机开发总结
- 简单快速了解gcc(新手入门)
- 时间管理
- 20.IDA-修改二进制文件、显示修改点
- 打开和保存文件对话框
- 嵌入式Linux学习路线图
- 【b504】等价表达式(NOIP2005第4题)
- PHP编译安装
- Http跨站点请求伪造解决方案
- spring 缓存 @CachePut 和 @Cacheable 区别