Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52111
  • 博文数量: 17
  • 博客积分: 651
  • 博客等级: 上士
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-23 14:23
文章分类

全部博文(17)

文章存档

2011年(10)

2010年(7)

我的朋友

分类: LINUX

2011-01-04 08:43:27

-c: 预处理、编译、汇编,不进行链接,只生成obj文件

-o: 预处理、编译、汇编、链接,生成可执行文件

-E: 预编译

-S: 预处理、编译,生成汇编文件

-Idir: 

    在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I指定了目录,他会先在你所制定的目录查找,然后再按常规的顺序去找. 
  对于#include,gcc/g++会到-I指定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找 

-I-: 就是取消前一个参数的功能,所以一般在-Idir之后使用


-M:
  生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c来测试一下,很简单。

-MM: 和上面的那个一样,但是它将忽略由#include造成的依赖关系


-llibrary: 指定编译的时候使用的库 
  

例子用法 :
  gcc -lcurses hello.c
  使用ncurses库编译程序
  

-Ldir: 

    指定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。这个dir就是目录的名称。

-O0:
-O1:
-O2:
-O3:
  编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高  

-static:
  此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行. 

-share:
  此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库

-ggdb: 此选项将尽可能的生成gdb的可以使用的调试信息



阅读(1154) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~