gcc编译器参数

一、什么是GCC?

GCC(GNU Compiler Collection)即GNU编译器套件,属于一种编程语言编译器。其原名也为GCC(GNU C Compiler),虽然缩写一样但是仅可编译C语言,后来经过发展才变成支持编译多语言。GCC的初衷是为GNU操作系统专门编写的一款编译器,原本的GNU是专用于编译C代码,现如今已扩展为可以编译C、C++、Java、Objective-C等多种编程语言的编译器集合了。

二、GCC、gcc、g++三者有何关系?

gcc(GUN C Compiler)是GCC中的c编译器,而**g++**(GUN C++ Compiler)是GCC中的c++编译器。
gcc和g++两者都可以编译c和cpp文件,但存在差异。

  • gcc在编译cpp时语法按照c来编译但默认不能链接到c++的库(gcc默认链接c库,g++默认链接c++库)。

  • g++编译.c和.cpp文件都统一按cpp的语法规则来编译。

    一般编译c用gcc,**编译c++用g++**。

三、GCC编译步骤

GCC广义上的编译流程可分为以下四个部分:

  • 预处理(Pre-Processing)
  • 编译(Compiling)
  • 汇编(Assembling)
  • 链接(Linking)

四、文件类型

  • .c/.cpp:源文件
  • .h:头文件
  • .o:编译以后得到的目标文件(object)
  • .a:静态链接库,可看作若干个目标文件的集合
  • .so:动态链接库(共享库)
  • .d:源文件的依赖关系的完整规则

五、gcc 参数

浅显易懂的GCC使用教程——初级篇_gcc -ddebug-CSDN博客

【精选】gcc的基本使用-CSDN博客

GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库(gcc -fPIC -shared)的创建和使用_c++ 链接 -l-CSDN博客

gcc -I -L -l区别 - 隔壁王叔叔a - 博客园 (cnblogs.com)