C学习笔记-gcc

GNU CC(通常称为GCC)是GNU项目的编译器,它能够编译C、C++语言编写的程序

gcc的优点

  • 使用gcc,程序员可以控制生成二进制执行文件中调试代码的数量和类型。

  • 和其他编译器一样,gcc也可以优化执行代码。

  • gcc是个交叉平台编译器,所以能够在当前CPU平台上为不同操作系统开发软件。

  • gcc对C和C++进行了一些扩展,有助于提高执行效率以及编译器进行代码优化。

  • gcc可以让跨平台编程更加容易,降低代码移植代价

gcc的大致流程

gcc

  • 预处理
gcc -o test.i -E test.c

gcc对源程序test.c进行预编译,预编译结果输出到test.i文件中

  • 汇编
gcc -o test.o -c test.i

gcc对源程序test.c进行编译,但不链接,编译输出到test.o文件中

  • 链接
gcc -o test test.o

gcc对源程序test.o进行链接,生成可执行程序test

gcc常用选项

参数 作用
-o filename 输出文件名,如果没指定filename,默认为a.out
-c 只编译,不链接
-E 预编译
-S 汇编
-g 包含调试信息
-I 指定包含头文件路径
-D 编译时定义指定的宏,相当于源代码中的#define宏定义
-L 指定要链接库文件的路径
-l 链接指定的库文件
-O 优化编译后的代码
-w 关闭所有告警信息
-Wall 开启所有告警信息
-Werror Warning当做错误处理
-static 强制链接时链接静态库
-fPIC 编译与位置无关的代码,主要用于编译共享库
-shared 生成共享库so文件
-pedantic 发现一些不符合 ANSI/ISO C标准的代码
原文地址:https://www.cnblogs.com/cj5785/p/10664774.html