gcc常用编译选项
选项 |
含义 |
-ansi |
只支持ANSI标准的C语言,禁止GNU C的某些特色,例如asm或typeof关键词 |
-c |
只编译并生成object文件 |
-DMACRO |
定义“MACRO”宏为字符串1 |
-DMACRO=DEF |
定义“MACRO”宏为字符串“DEF” |
-UMACRO |
取消对“MACRO”宏的定义 |
-E |
只运行C预编译器cpp |
-g |
生成可被gdb使用的标准调试信息 |
-ggdb |
生成只被gdb使用的扩展调试信息 |
-IDIRECTORY |
除默认情况外,制定其他头文件搜索路径“DIRECTORY” |
-LDIRECTORY |
除默认情况外,制定其他库函数搜索路径“DIRECTORY” |
-lLibrary |
确定链接时需要的其他库函数“LIBRARY” |
-mXXX |
针对“XXX”CPU进行优化,如“XXX”可以是486、586等 |
-o FILE |
生成指定的输出文件名“FILE” |
-O0 |
不进行代码优化 |
-O 或 –O1 |
进行一般的代码优化,减小执行代码大小和执行时间 |
-O2 |
比-O1进行更多的代码优化,一般在内核编译中会使用 |
-O3 |
比-O2更进一步优化 |
-fomit-frame-pointer |
忽略帧指针,即在函数的调用不需要保存、安装和恢复帧指针(在内核编译中使用的较多) |
-shared |
生成支持动态共享库的文件 |
-static |
不支持动态共享库,把函数库中内容静态链接到执行文件 |
-MM |
输出源文件的依赖关系 |
-fPIC |
产生位置无关代码(PIC),一般创建共享库时使用 |
-w |
不生成任何警告信息 |
-Wall |
生成所有级别的警告信息 |
-Werror |
把所有的警告当作错误,并中止编译过程 |
评论