测试四-静态库的测试
测试四-静态库的测试
针对第一个题目(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没有触发断点