1.动态库相比较于静态库的优缺点?
动态库优点:节省内存和代码重用,当应用程序使用动态链接库时,多个应用程序可以共享磁盘上的DLL(windows)和so(linux)副本,可实现多个进程间资源共享
动态库缺点:加载速度比静态库慢
静态库优点:静态库被打包到应用程序中加载速度快、移植方便
静态库缺点:消耗系统资源
2.如何生成动态库
1. gcc -c -fpic *.c 得到目标文件
2. gcc -shared *.o -o lib***.so 生成动态库
3.如何链接动态库
gcc main.c -o main -I include/ -L lib/ -l calc
4.动态库和可执行二进制文件放在那里?
动态库必须和可执行二进制文件放在一起否则会报错
介绍一下关于库
库是计算机上的一类文件,可以看成代码仓库。是特殊的一种程序,只是库不能单独运行
库文件有两种:静态库和动态库(共享库)。区别是静态库在程序的链接阶段被复制到程序中;动态库在链接阶段没有被复制到程序中,而是在程序运行是系统动态加载到内存中供程序调用。