linux_C/C++程序编译-gcc编译器基础使用、编译阶段、编译优化、命令大全(g++适用)

接上一篇:linux_vim文本编辑器(vi),命令模式、文本模式、可视模式、末行模式[常用命令大全]

今天来分享在linux上写C语言和C++程序之后怎么编译,在linux上编译C/C++程序时是使用gcc/g++编译器,话不多说,开始今天的菜:

1.gcc/g++编译器安装

终端输入命令:

sudo apt install gcc		#安装gcc编译器,编译C程序
sudo apt install g++		#安装g++编译器,编译C++程序

2.gcc/g++编译的四个阶段

gcc编译的四个阶段分为:

①预处理		-E(使用参数)
②编译		-S(使用参数)
③汇编		-c(使用参数)
④链接		没有参数

例如:

gcc -E hello.c -o hello.i		#预处理阶段,生成预处理文件hello.i
gcc -S hello.i -o hello.s		#编译阶段,生成编译文件hello.s
gcc -c hello.s -o hello.o		#汇编阶段,生成二进制文件hello.o
gcc hello.o -o hello			#链接阶段,生成可执行文件

3.gcc/g++编译、生成可执行文件命令

  -o  #给可执行文件改名字,不指定生成可执行文件的名字,默认生成a.out

例如:

gcc main.c -o main		#生成的可执行文件叫main

4.查看版本号命令

  -v / --version   #查看版本号
例如:

gcc -v	#查看gcc编译器版本号
g++ -v	#查看g++编译版本号

5.指定头文件目录命令

  -I +目录   #指定头文件的位置(大写的i)
例如:

gcc main.c -I ./testinclude -o main		#编译mian.c,指定头文件存放位置在testinclude文件夹中

6.编译时定义宏命令(-D参数)

  -D +宏   #在代码中用到的宏,可以不用在代码中定义,在编译的时候定义
例如:

gcc main.c -o main -D DEBUG		#在代码中用到了DEBUG这个宏,但是在代码中没有定义,在编译的时候定义了,这种写法可以用来控制log是否打印等

7.编译优化命令

  -On #编译优化等级n=0∼3,对代码进行优化,比如代码有冗余:int a=10;int b=a;优化成了b=10;
  -O0 - 没有优化
  -O1 - 缺省值
  -O3 - 优化级别最高

例如:

gcc main.c -o main -O3	#进行代码优化编译

8.提示更多警告信息命令

  -Wall   #输出警告信息
例如:

gcc main.c -o main -Wall		#输出代码的一些警告,比如变量未使用

9.生成二进制文件命令-只编译子程序

  -c   #编译的第三阶段
生成动态库静态库文件的时候就需要加-c参数,

gcc -c hello.s -o hello.o		#生成二进制文件hello.o

10.生成预处理文件命令

  -E   #编译的第一阶段
例如:

gcc -E hello.c -o hello.i		#预处理阶段,生成预处理文件hello.i

11.包含调试信息命令

  -g   #gdb调试的时候必须加此参数
例如:

gcc main.c -o main -g	#生成调试信息,+g参数,生成的可执行文件要比没加g的时候大,因为里面多了调试信息

以上就是本次的分享了,希望能对广大网友有帮助。

此博主在CSDN发布的文章目录:【我的CSDN目录,作为博主在CSDN上发布的文章类型导读

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

futureCode.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值