静态库的制作,使用
?
?
?
head.h文件如下
#ifndef _HEAD_H_ #define _HEAD_H_ int add(int a, int b); int sub(int a, int b); #endif?add.c文件如下
#include"head.h"int add(int a, int b){int result = a+b;return result; }?sub.c文件如下
#include"head.h"int sub(int a, int b){int result = a-b;return result; }main.c 文件如下
#include<stdio.h> #include"head.h"int main(void){int sum = add(2, 24);printf("sum = %d\n", sum);return 0; }?
?gcc *.c -c -I ../include? 將所有.c文件編譯成.o文件
?ar rcs libMyCalc.a *.o? ?將.0文件生成靜態庫
?gcc main.c lib/libMyCalc.a -I include -o calc? ?測試使用靜態庫提供的功能。
?
通過nm命令查看靜態庫的內容
?
靜態庫的優缺點
? 程序用到靜態庫的哪些函數,就只加載對應的.o文件,不會直接將整個靜態庫文件的.o文件都加載到程序
總結