#踏上linux之旅(二)——day2(linux必学工具)

Linux常用工具——GCC编译器/GDB调试工具

GCC

gcc是GNU编译器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。

gcc编译步骤
1.预处理:处理所有#开头的代码:gcc -E hello.c -o hello.i
2.编译:语法检查、把代码变成汇编代码:gcc -S hello.i -o hello.s
3.汇编:把汇编代码变成二进制代码:gcc -c hello.s -o hello.o
4链接:gcc hello.o -o hello

静态编译
编译的时候链接所有需要回到的库,二进制文件比较大,但是运行时候对环境没有要求。

静态库制作
格式:1.编写三个文件:main.c,f1.c,f2.c
2.把f1.c和f2.c编译成.o文件 :gcc -c f1.c f2.c
3.把.o文件合成静态库文件
ar -crv libxx.a f1.o f2.o
4.编译 main.c
gcc main.c -o main -static -L . -lxx
-L:静态库的位置
xx:任取的静态库的名字
-static:使用静态库编译
5. ./main

动态编译
编译的时候,只编译源文件,二进制文件比较小,但是运行时候对环境要求较高

动态库制作
格式:1.编写三个文件
2.把源文件编译成动态库
gcc -fPIC -shared -o libxxx.so f1.c f2.c
3.编译:main.c
gcc main.c -o main -L .-lxxx
4.运行前把动态库拷贝到/usr/lib目录下
cp libxxx.so /usr/lib
5.运行
./main

GDB

GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点、单步执行等操作。当程序暂停执行时,可以使用命令查看程序中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。

被调试的应用程序在编译时最好使用-g参数将调试信息编入目标文件中:
gcc -g app.c -o app
用以下命令启动对程序app的调试:
gdb app
如果程序app运行时需要参数,则用以下命令:
gdb --args app arg1 arg2 # arg1和arg2被视为app的参数,而不是gdb的参数

常用命令
GDB常用命令

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值