什么是库文件?
保存源文件的功能但是看不到原码
静态库:(编译的时候加载)是否在执行程序之前就已经加入到可执行代码中,成为执行程序的一部分来执行,后缀名:.a
动态库:(执行时加载)是在执行程序启动时加载到执行代码中,后缀名为:.so
静态库和动态库的区别?
执行效益:静态高,动态底;
可执行文件大小:静态大,动态小;
文件部署:静态简单,动态复杂;
软件功能升级:静态(不容易升级),动态简单;
什么时候用动态库?什么时候用静态库?
如何制作静态库和动态库?
#gcc –c 源文件.c
1)制作静态库
# ar rcs libadd.a add.c
libadd.a 前缀 名字 后缀
# gcc main.c –ladd –L.
(-l 选择库 ,-L 库路径)
2)制作动态库
gcc –shared –fPIC –o 库名.so 源文件.c
使用动态库
gcc 源文件.c ./库名.so –o 可执行文件名