库文件:存放函数和变量的仓库 特点:只能使用库里的函数和变量,不能看到其实现
静态库.a:当使用静态库时,库里的函数和变量是在编译时加载到可执行文件
动态库.so:当使用动态库时,库里的函数和变量是在运行时加载到可执行文件的
可执行文件的大小:静态库>动态库……………………静态库内存的使用效率不高(静态库占用运行资源)
可执行文件的速度:静态库>动态库 >运行效率
可执行文件的功能升级:静态库<动态库…………功能升级的难易程度
可执行文件的代码部署:静态库>动态库…………代码部署的位置
库文件的存放路径:/lib/usr/lib
静态库:
gcc -c add.c 生成add.c的二进制文件(.o)
ar rcs libadd.a add.o 库文件、目标文件(生成add.o的.a 库文件)gcc
gcc 主函数所在.c文件 -I库名 (以-l表示) -L库的路径(本路径为.) 造出可执行文件.out
动态库
gcc -shared -fPIC add.c -o libadd.so 建立源文件add.c的动态库libadd.so
gcc test.c ./libadd.so -o test 将test.c 文件链接为test可执行文件.out