作者:你说的白是小白的白_958 | 来源:互联网 | 2023-10-11 21:54
gcc-g源文件-o目标文件-g产生可以调试的目标文件gdbmain2.out开始调试程序l列出程序代码break行数打断点start开始调试p变量查看变量当前值
gcc -g 源文件 -o 目标文件
gdb main2.out
l
break 行数
start
p 变量
n
s
bt
x/3d 开始的地址
Linux C 标准头文件一般存放在 /usr/include
gcc -I /usr/openwin/include aa.c // -I可以包含非标准位置的头文件
库是一组预先编译好的函数的集合。一般存放在 /lib和 /usr/lib 目录中。
库文件的名字总是以 lib 开头,随后的部分指出这是什么库(例如,c代表C语言库,m代表数学库)。
文件名的最后部分以 . 开始,然后给出库文件的类型:
.a 代表传统的静态函数库;
.so代表共享函数库函数库通常同时以静态库和共享库两种形式存在,可以用 ls /usr/lib 查看。
你可以通过给出完整的库文件路径名或者用 -l 标志来告诉编译器要搜索的库文件。如:
gcc -o gred fred.c /usr/lib/libm.a
这条命令要求编译器编译文件 fred.c ,将产生编译文件gred,并且除了搜索标准的C语言函数库外,还要搜索数据库以解决问题。
gcc -o gred fred.c -lm
-lm 是简写的方式,它代表的是标准库目录(/usr/lib)中名为 libm.a的函数库。gcc -o x11fred -L /usr/openwin/lib x11fred.c -lX11
这条命令用 /usr/openwin/lib 目录中的 libxX11 库来编译和链接程序 x11fred.
静态库:函数库最简单的形式是一组处于 “准备好使用”状态的目标文件。当程序需要使用函数库中的某个函数时,
它包含一个声明该函数的头文件。编译器和链接器负责将程序代码和函数库结合在一起以组成一个单独的可执行文件。
你必须用 -l 选项指明除了标准库外还需使用的库。静态库,也成做归档文件(archive),按惯例他们的文件名都以 .a 结尾。
你可以很容易的创建和维护自己的静态库,只要用 ar (代表 archive ,即建立归档文件)
程序和使用 gcc -c 命令对函数进行分别编译。你应该尽可能把函数分别保持到不同的源文件中。
如果函数需要访问公共数据,你可以把他们放在同一个源文件中,并使用在该文件中声明的静态变量。