测试四-静态库的测试

测试四-静态库的测试

针对第一个题目(VSCode/Vim)输入的代码,除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?

编译源文件

将所有的源代码文件(.c或.cpp文件)编译成目标文件(.o文件)。使用-c选项来告诉GCC只编译不链接。

gcc -c add.c sub.c mul.c div.c

生成四个.o目标文件。

创建静态库

使用ar工具将所有目标文件打包成一个静态库。ar是GNU归档器,用于创建、修改、从归档中提取文件。

ar rcs mymath.a add.o sub.o mul.o div.o
  • r:插入文件(替换旧的归档文件)
  • c:不显示警告信息
  • s:创建索引(symbol table),这有助于链接器快速定位符号

使用静态库

链接程序到静态库,使用-L选项指定库文件的位置,使用-l选项指定库的名称(不包括前缀lib和后缀.a)
加-g参数,生成调试信息,使该程序可以被调试器调试

gcc -g main.c mymath.a -o main

设置条件断点

gdb ./main
(gdb) break 10 if a==5
run
continue

截图
第一次输入a=5时触发条件断点,第二次a=1没有触发断点

posted @ 2025-01-02 11:31  Arisf  阅读(2)  评论(0编辑  收藏  举报