Linux基础学习 | gcc、g++的安装和使用
安装gcc
1、apt-get命令是debain Linux发新版的APT软件包管理工具。
dabian、ubuntu、deepin等Linux系统通过以下命令:
安装gcc:Shell输入sudo apt-get install gcc
命令,然后回车确定就可以了。
安装g++:Shell输入sudo apt-get install g++
命令,回车确定。
用于我这里已经安装过,所以显示gcc 已经是最新版。
2、yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器。
Shell输入sudo yum install gcc
命令,sudo yum install gcc-g++
命令。
使用gcc
0、使用vim
编写程序,命令vim main.c
编写如下代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("hello world!\n");
exit(0);
}
1、预编译:命令gcc -E mian.c -o main.i
预编译,生成main.i文件。其中-E
表示预编译,main.c是源文件,main.i表示生成的文件(-o 表示目标Object)
2、编译:命令gcc -S main.i -o main.s
编译,生成main.s文件
3、汇编:命令gcc -c main.s -o main.o
汇编,生成main.o文件
4、连接:命令gcc -o mian.o -o main
连接,生成可执行文件
5、执行:命令./main
执行。./
表示当前目录。
6、直接编译
1、可以用命令gcc -c main.c -o main.o
命令一步编译至汇编阶段。
2、可以用命令gcc -o main main.c
命令将c程序一步编译完成。此命令可用于简化c程序编译步骤。
另外,有些程序依赖动态库在编译时在后边加上-l库名
比如2.c
程序中用到了#include <math.h>
编译时应该加上动态共享库名
gdb调试
首先安装gdb,apt-get install gdb
1、编译程序gcc -o main main.c -g
,加上-g
生成调试信息
2、gdb main
开始调试
命令:
l 显示代码 p 打印
b 加断点 q 退出
r 运行 info break
n 单步调试 info threads
s 进入函数 threads id
finish 退出函数 set follow-fork-mode child
bt 显示函数调用栈关系
此外,还有以下几种调试
- core文件调试 ulimit -c size 设置生成文件大小(程序崩溃时生成)
- strace 跟踪打印系统调用 -p pid
- ltrace 跟踪库函数