gcc 编译程序

GCC

选项 选项描述
-x language 指定使用的语言(C、C++或汇编)
-c 只对文件进行便也和汇编,但不进行连接
-S 只对文件进行编译,但不汇编和连接
-E 只对文件进行预处理,但不编译汇编及连接
-o [file1] file2 将文件 file2 编译成可执行文件 file1
-I dir 在头文件的搜索路径中添加 dir 目录
-L dir 在库文件的搜索路径中添加 dir 目录
-w 禁止警告信息
-pedantic 严格要求符合 ANCI 标准
-Wall 显示所有警告
-g 加入调试信息以便于调试,GNU 调试器可利用该信息
-O0 不进行优化处理
-O(-O1) 对编译的代码进行优化
-O2 比 -O 更高级别的优化
-O3 更高级别的优化
-v 显示版本
-ansi 只支持 ANSI 标准的 c 语法,该选项将禁止 GUN C 的某些特色,例如 asm 或 typeof关键字
-pedantic 允许发出 ANSI C 标准所列的全部警告信息
-pedantic-error 允许发出 ANSI C 标准所列的全部错误信息
-werror 把所有的警告信息转化为错误信息,并在告警发生时终止编译过程
-fPIC 生成使用相对地址与位置无关的目标代码.然后通常使用 gcc 的-static 选项从该 PIC 目标文件生成动态库文件
-static 使用静态链接的方式
-shared
  1. 可以生成动态库文件
  2. 进行动态编译,尽可能地链接动态库,只有当没有动态库时,才会链接同名的静态库文件(默认选项)

gcc编译流流程

  1. 预处理器 cpp 完成宏的求值、条件编译以及一些需要吧代码传递到编译器前的工作.
  2. 编译器 gcc gcc -S 将源代码编译成汇编代码
  3. GNU 汇编器 as as 处理汇编代码,产生目标文件(二进制文件)
  4. GNU 连接器 ld ld 将程序的各个模块组合起来产生最后的可执行文件
  5. 文件处理器 ar 可以用 ar 建立静态库,把几个小文件组成一个大文件.
  6. 库显示 ldd 可以显示一个可之心文件运行时需要的一些共享库.是 Library Dependency Display 的缩写

 

 

 

gcc :

  • http://www.cnblogs.com/jerryxgh/archive/2012/05/09/2491028.html
  • http://www.cnblogs.com/huqingyu/archive/2005/03/21/122876.html

你可能感兴趣的:(gcc 编译程序)