Linux 高并发学习笔记 - GCC/G++基本使用

GCC(GNUCompilerCollection)是GNU开发的多语言编译器,支持C、C++等语言。G++是GCC的C++前端,用于C++的编译和链接。文章介绍了GCC和G++的基本使用,包括预处理器的工作原理、常用编译命令,如-E、-S、-c、-o、-g等选项,以及如何指定头文件和库文件路径。此外,还讨论了GCC与G++在处理C++源文件时的区别,以及它们与__cplusplus宏的关系。

1.2 GCC/G++ 基本使用

Linux 高并发学习笔记 - 笔记索引

1.2.1 介绍
  • GCC原名GNU C Complier,GNU C语言编译器。现在GCCGNU Complier Collection,由GNU开发的编译器套件,支持多种语言的编译,包括:CC++Objective-CJavaAda以及Go语言前端。

  • 安装:sudo apt install gcc g++

  • 标准:GCC/G++支持多种C语言C++标准,编译参数为:-std=C99

  • 版本:gcc/g++ -v/--version

1.2.2 工作原理

GCC工作原理

  1. 预处理器:对C/C++代码进行预处理,包括消除注释、宏替换、头文件展开与优化
1.2.3 常用命令
命令描述
gcc test.c生成可执行文件 a.out
gcc test.c -o test生成可执行文件 test
gcc test.c -c -o test.o生成目标代码 test.o
gcc test.c -o test -I include -L lib -l libxxx.a指定头文件与库文件搜索目录
gcc test.c -D DEBUG -o test生成宏 DEBUG
开关描述
-o生成文件,否则某些情况下将打印至命令行并不生成文件
-E生成预处理代码
-S生成汇编代码
-c生成目标代码
-g生成调试信息,该程序可以被调试器调试
-D *生成宏
-w不生成任何警告
-Wall生成所有警告
-O*开启编译器优化,包括-O0-O1(默认)、-O2-O3
- I I I *指定头文件搜索目录
-L *指定库文件搜索目录
- l l l指定导入的库文件
-fpic/-fPIC生成与位置无关的代码
-shared生成共享文件
-std *指定C语言/C++标准
1.2.4 GCC与G++的区别
  1. GCC可以编译C++代码,但是不能完成C++代码的链接,G++在编译代码时会调用GCC,例如,以下是等价的:
$ g++ test.cpp -o test
$ gcc test.cpp -c -o test.o  // 使用GCC生成目标代码
$ g++ test.o -o test  // G++仅用于链接代码
  1. 使用G++/GCC编译会生成__cplusplus宏。

编译器与源文件后缀与是否生成 _ _ c p l u s p l u s 宏的关系   后缀 编译器 G C C G + + . c 否 是 . c p p 是 是 编译器与源文件后缀与是否生成\_\_cplusplus宏的关系 \\ ~\\ \begin{array}{c|cc} {_{后缀}}{^{编译器}} & GCC & G++ \\ \hline .c & 否 & 是 \\ .cpp & 是 & 是 \\ \end{array} 编译器与源文件后缀与是否生成__cplusplus宏的关系 后缀编译器.c.cppGCCG++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值