现在的位置: 首页 > 综合 > 正文

GCC选项_持久总结更新

2013年08月28日 ⁄ 综合 ⁄ 共 1023字 ⁄ 字号 评论关闭
1.-gLevel  产生符号调试工具(GNU的gdb)所必要的符号信息
eg:
gcc -g3 HelloWorld.c -o HelloWorld.exe
2.-Wall 
-Wall 开启编译器几乎所有常用的警告──强烈建议你始终使用该选项。编译器有很多其他的警告选项,但 -Wall 是最常用的。默认情况下GCC 不会产生任何警告信息。当编写 C 或 C++ 程序时编译器警告非常有助于检测程序存在的问题。
eg:gcc -g -Wall HelloWorld.c  -o HelloWorld.exe
3.-o
选项 -o 可用来指定生成的对象文件的文件名。该选项通常作为命令行中的最后一个参数。
eg:
gcc -E HelloWorld.c -o HelloWorld.i
将预编译的结果重定向至HelloWorld.i文件中
4.-E  
编译预处理
eg:

选项 -E 使 gcc 将源代码用编译预处理器处理后不再执行其他动作。下面的命令预处理源码文件 helloworld.cpp 并将结果显示在标准输出中:

$ gcc -E helloworld.c

本文前面所列出的 helloworld.cpp 的源代码,仅仅有六行,而且该程序除了显示一行文字外什么都不做,但是,预处理后的版本将超过 1200 行。这主要是因为头文件 iostream 被包含进来,而且它又包含了其他的头文件,除此之外,还有若干个处理输入和输出的类的定义。

预处理过的文件的 GCC 后缀为 .i,它可以通过 -o 选项来生成,例如:

$ gcc -E helloworld.c -o helloworld.i

5.-S
选项 -S 指示编译器将程序编译成汇编语言,输出汇编语言代码而后结束。

下面的命令将由 C源码文件生成汇编语言文件 helloworld.s:

$ gcc -S helloworld.c

生成的汇编语言依赖于编译器的目标平台。

6.-o

选项 -c 用来告诉编译器编译源代码但不要执行链接,输出结果为对象文件。文件默认名与源码文件名相同,只是将其后缀变为 .o。例如,下面的命令将编译源码文件 HelloWorld.cpp 并生成对象文件 HelloWorld.o:

$ gcc -c HelloWorld.c

7.-OLevel
-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。级别为0~3,级别越大优化效果越好,但编译时间越长。0表示不优化。
eg:#gcc -O1 test.c -o test

抱歉!评论已关闭.