3月1日做题总结(静态库与动态库)

前言

        最近学到了静态库和动态库的相关知识,就顺便整理了一下相关题目。如果对静态库和动态库知识不熟悉的同学,推荐看这篇文章——《静态库与动态库》,讲的很详细。

第一题

关于静态库与动态库的区别,以下说法错误的是()

A---加载动态库的程序运行速度相对较快

B---静态库会被添加为程序的一部分进行使用

C---动态库可用节省内存和磁盘空间

D---静态库重新编译,需要将应用程序重新编译

正确答案:A

解析:动态库的函数到实际使用的时候才加载到内存中,所以运行速度相对较慢。

第二题

静态库和动态库如何制作及使用,区别是什么?

参考答案:
1.静态库制作和使用
        -命名: libxxx.a
        -制作: 1.获得.o文件 gcc -c xxx.c xxx.c
                   2.将.o文件打包 ar rcs libxxx.a xxx.o xxx.o
        -使用:gcc 源文件 -o 目标文件 -I 头文件路径 -L 库文件路径 -lname -static
2.动态库的制作与使用
        -命名: libxxx.so
        -制作: gcc -shared -fPIC -o libxxx.so xxx.c xxx.c
        -使用: 1.gcc 源文件 -o 目标文件 -I 头文件路径 -L 库文件路径 -lname

                     2.配置加载路径:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: 动态库所在的绝对路径

3.静态库和动态的区别

        静态库 gcc 进行链接时,会把静态库中代码打包到可执行程序中,编译时加载;发布程序时无需提供静态库,移植方便;消耗内存,更新部署发布麻烦。

        动态库 gcc 进行链接时,动态库的代码不会被打包到可执行程序中,运行时加载;发布程序时需要提供动态库;内存占用小,更新部署发布简单。

第三题

请你说说动态库静态库的优缺点?

参考答案:

1、静态库
        优点:
                ①静态库被打包到应用程序中加载速度快
                ②发布程序无需提供静态库,移植方便
        缺点:
                ①相同的库文件数据可能在内存中被加载多份,消耗系统资源,浪费内存
                ②库文件更新需要重新编译项目文件,生成新的可执行程序,浪费时间。
2、动态库
        优点:
                ①可实现不同进程间的资源共享
                ②动态库升级简单,只需要替换库文件,无需重新编译应用程序
                ③可以控制何时加载动态库,不调用库函数动态库不会被加载
        缺点:
                ①加载速度比静态库慢
                ②发布程序需要提供依赖的动态库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学代码的小信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值