接上一篇: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上发布的文章类型导读】