GCC参数详解

1 篇文章 0 订阅

GCC 参数详解

编译步骤

gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步:

1、预处理,生成 .i 的文件[预处理器cpp]
2、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs]
3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
4、连接目标代码, 生成可执行程序 [链接器ld]

编译命令参数

-x language filename
例:gcc -x c test1.c 生成 a.out 文件

-x none filename
让gcc根据文件名后缀,自动识别文件类型
例:gcc -x c hello.pig -x none hello2.c * 生成 a.out 文件

-o
制定目标名称, 默认的时候, gcc 编译出来的文件是 a.out
例:gcc -o test.exe test.c /gcc test.c -o test.exe 生成 test.exe 文件

-g  
只是编译器,在编译的时候,产生调试信息
例:gcc -g test.c /gcc -g test.c -o test.out
生成的可执行文件带有调试信息可以使用gdb工具调试

-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例:gcc -c test.c 生成 test.o 文件

-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
例:gcc -S test.c 生成 test.s 文件

-E
只激活预处理,这个不生成文件, 你需要把它重定向到一个输出文件里面
例:gcc -E test.c > test.i /gcc -E -o test.i test.c 保存 test.i 文件
gcc -E hello.c | more

gcc 命令的常用选项

选项解释
-ansi只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
-c只编译并生成目标文件。
-DMACRO以字符串"1"定义 MACRO 宏。
-DMACRO=DEFN以字符串"DEFN"定义 MACRO 宏。
-E只运行 C 预编译器。
-g生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY连接时搜索指定的函数库LIBRARY。
-m486针对 486 进行代码优化。
-o FILE生成指定的输出文件。用在生成可执行文件时。
-O0不进行优化处理。
-O 或 -O1优化生成代码。
-O2进一步优化。
-O3比 -O2 更进一步优化,包括 inline 函数。
-shared生成共享目标文件。通常用在建立共享库时。
-static禁止使用共享连接。
-UMACRO取消对 MACRO 宏的定义。
-w不生成任何警告信息。
-Wall生成所有警告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值