库文件
静态库 共享库
库:预先编译好的方法(函数)的集合
静态库:libxx.a
共享库:libxx.so
静态库的创建:
add.c -> add.o
max.c -> max.o
ar crv libfoo.a add.o max.o
gcc -o main main.c -L位置 -l库名
共享库的创建:
add.c -> add.o
max.c -> max.o
gcc -o main main.c -L位置 -l库名
gcc -o mian main.c -L位置 -l库名
静态库和共享库的区别:
Windows 上称为 静态库和动态链接库
静态库 :包含用到库中的方法 编译时已调用 已将需要使用的部分作为程序一部分 不要求系统上有库 运行不需要寻找 缺点:不利于资源利用 占内存
共享库 :不包含用到库中的方法 一个库被数多程序共享 运行时调用 要求运行时目标主机上存在共享库 若不存在则程序无法执行
使用共享库编译出可执行程序比静态库编译出的程序小一些
使用静态库编译的可执行程序不能更换链接的静态库 只能重新编译main.c链接新的静态库