Linux C程序的编译连接及调试工具(gdb)、库文件

查看文件内容

cat filename

more filename

less filename

head -n filename (查看文件前n行)

tail -n filename (查看文件后n行)

C程序的编译连接

 Linux 调试工具  gdb

编译过程中加入debug信息:gcc  -c  main.c  -g

链接不会加入debug信息:gcc  -o main main.o    (-o重命名)

gdb调试

l                                        显示源代码(默认显示main函数所在文件的源代码)

list  filename :num         显示制定文件指定行附近的源代码

b    linenum                      给指定行添加断点

b    funactionname           给指定函数添加断点

b    filename :linenum      给指定文件的指定行添加断点

b   linenum if                    条件

info b                               显示断点信息

d bpnum                          删除断点

disable   bpnum               将断点设置为无效的

enable  bpnum                 将断点设置为有效的

执行过程控制

r              启动调试

finish      退出函数执行

q             退出调试

n             执行下一步

s             进入函数中执行

c             继续运行,运行到下一个断点处

p  valname       查看变量的值

p  &valname     查看变量的地址

p  *ptr               指针指向的地址存储的值

p  arr                显示数组所有的元素

p *ptrarr@num    通过指向数组的指针显示数组所有的元素

p struct_val         显示结构体里所有的成员值

p struct  -val.a  (.a  成员名)显示结构体变量中某个成员的值

p  syruct→a                       通过指针显示结构体变量某个成员的值

p  funactionname(a,b)     将函数测试运行

bt              显示函数调用栈       函数调用流程

链接文件

文件系统

Linux  文件系统  EXT4    索引式文件系统

U盘                     FAT32  链接式

windows              NTFS

EXT4:磁盘格式化时,将磁盘空间分为三部分:inode、block、superblock

superblock:存储整个文件系统的信息,包括inode&block的总量、使用量、剩余量。

inode:存储文件的属性信息,包括文件的权限、用户……block的编号。

block:存储文件的真实内容。

库文件:是某些功能代码的集合

        库文件中不允许有main函数

              

 静态库

静态库是功能代码编译完成后的中间文件的集合。

静态库的生成:

gcc     -c   *.c(.c文件)→*.o

ar       crv    libxxx.a     .o(所有.o文件)→libxxx.a(静态库)

库的使用:

1、gcc   -o   main  main.c  -L(库的路径)   -l(库名称)

2、gcc   -o   main  main.c   路径/libxxx.a

动态库

链接阶段仅仅是让可执行文件知道所用的功能代码在哪个库中。执行时,由操作系统将动态库单独动态加载到内存上执行。

动态库的生成:

gcc    -shared  -fPIC  -o    libxxx.so   *.c

gcc     -o   main    main.c   -L(库的路径)   -l(库名称)

操作系统加载动态库路径:  /lib      /usr/lib

1、将动态库拷贝到 /lib或者  /usr/lib    (只有root用户有权限)

2、设置环境变量      使操作系统加载库时除了在默认路径下搜索

猜你喜欢

转载自blog.csdn.net/like_that/article/details/84841868
今日推荐