如何生成静态库与动态库?

库是由一组目标文件聚合而成的文件,目标文件通过源文件编译得到。对于C语言,目标文件包含了若干数据结构和函数,但不能包含main函数。库有两种类型:静态库和动态库。

如何生成静态库与动态库?

静态库是指在编译时将库链接进可执行文件中,每次执行程序时都会使用这个库的一个副本。动态库则在运行时加载进内存,不会像静态库那样被复制多份,因此动态库可以被多个程序共享。本文将以gcc工具为例,介绍如何生成静态库和动态库。

一、如何生成静态库

1. 准备两个源文件s1.c和s2.c,以及相应的头文件s1.h和s2.h。

2. 从s1.c和s2.c生成静态库libs12.a:

(1)执行指令“gcc -c s1.c s2.c”生成目标文件:s1.o、s2.o

(2)执行指令“ar cr libs12.a s1.o s2.o”生成静态库:libs12.a

3. 准备测试文件main.c并编译连接静态库libs12.a:

(1)执行指令“gcc -c main.c”生成目标文件:main.o

(2)执行指令“gcc -o s12.exe main.o libs12.a”生成可执行文件s12.exe

(3)执行生成的s12.exe可验证成功连接静态文件

二、如何生成动态库

1. 从s1.c和s2.c生成动态库:

(1)执行指令“gcc -fPIC -shared s1.c s2.c -o ”生成动态库:

其中-fPIC选项用于告诉编译器生成与位置无关的代码,这对于动态库非常重要。

2. 编译测试文件main.c并链接动态库

(1)执行指令“gcc -c main.c”生成目标文件:main.o

(2)执行指令“gcc -o s12 main.o -L./ -l s12”生成可执行文件s12

其中-L选项用于告诉编译器在当前目录下查找动态库,-l选项则指定要链接的库的名称,注意此处不需要写上“lib”和“.so”后缀。

(3)执行生成的s12可验证成功连接动态文件

总结:

生成静态库和动态库的方法大致相同,只是在编译时需要加入不同的参数。静态库在编译时将库链接进可执行文件中,而动态库则在运行时加载进内存,两者各自的优点和缺点需要根据实际情况进行选择。

标签:

最新文章

  1. EXCEL如何锁定第一行 怎么锁定表格第一排?2025-03-14
  2. 网络营销是干嘛的 学网络营销创业容易吗?2025-03-27
  3. 模拟ic版图设计 IC版图设计和PCB版图设计的区别?2025-03-31
  4. 必省宝优惠券怎么领取 必省宝优惠券领取方法2025-03-16
  5. 美图秀秀如何查看以前P过的照片2025-03-08
  6. 阿里巴巴客服考试题库及答案2025-03-09
  7. 最终幻想14关闭快捷指令 苹果14相册为什么添加不上命令?2025-03-14
  8. 如何在Mac版Excel中显示拼音字段2025-03-12
  9. 如何高效卸载电脑中不需要的软件2025-03-10
  10. 天翼手机查移动还是联通 如何查询号码的运营商二维码?2025-03-10
  11. vba最后一行下一行如何写计算公式 VBA计算公式2025-03-10
  12. 教你企业微信怎么加入第二个企业 专科生如何进入大公司工作?2025-03-15
  13. 怎么在imtoken钱包创建数字钱包 imToken钱包创建数字钱包步骤详解2025-03-16
  14. 相亲注册 国内的几家相亲网站你觉得最靠谱的是哪一家?为什么?2025-03-28
  15. dt旅游俱乐部曝光 梦幻西游DT怎么玩?2025-03-29
  16. .top域名 服务器和域名之间有什么联系呢?2025-03-31
  17. 广告设计和网页设计哪个好 学UI设计好,还是网页设计好?2025-04-01
  18. 钉钉上怎么做报表 在钉钉上的表格怎么固定表头?2025-03-11
  19. 网络营销的方法有哪些? 互联网营销专业主要是学什么的呢?2025-04-01
  20. 小米手机怎样通过蓝牙共享网络 小米xmyx02jy如何连接蓝牙?2025-03-13
  21. 百度收录域名 做好的网站怎么才能被收录?2025-03-19
  22. 华为相机改善拍摄画质怎么关 华为手机拍照变小怎么调回来?2025-03-23
  23. word中详细修订在哪里 word修订模式如何逐条修改?2025-03-24
  24. wpsppt中表格如何设置边框为虚线 wps表格分页预览实线怎么变虚线?2025-03-15
  25. java怎么放大字体 怎么把java界面变成黑色?大学生新任程序员,看网上大神的java都是黑色的,感觉很高大上有木有?2025-03-28
  26. 光年国平seo 今天面试SEO,面试官问网站排名和关键词排名,有什么异同?2025-04-01
  27. 孕妇精油护肤品可以用吗(护肤精油孕妇可以用吗?妊娠纹有什么办法可以消除?)2025-03-18
  28. 小米手机可以复制门禁卡么2025-03-16
  29. 中国金币深圳经销中心(金币云商保证金什么时候退还?)2025-03-20
  30. 性能测试怎么测 软件测试怎么入门?2025-03-15
优质自媒体
优质自媒体 微信号:优质自媒体 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 如何新建新增的简单卷

    在使用计算机的过程中,有时我们需要将NAS磁盘作为计算机本地磁盘来使用。下面将介绍如何将NAS磁盘添加为计算机本地磁盘,并新建一个简单卷。步骤一:打开计算机管理界面首先,在计算机桌面上右键点击“此电脑”,然后选择“管理”。这样会打开“计算机

  2. 2 如何设置幻灯片背景颜色

    在制作演示文稿时,幻灯片的背景颜色是至关重要的。通过设置合适的背景颜色,不仅可以提升整体视觉效果,还能够增强内容的清晰度和吸引力。下面将介绍具体的操作步骤来设置幻灯片的背景颜色。 进入设计选项卡首先,打开您的文稿并点击“设计”选项卡。在这个

  3. 3 Win11怎样开启语音识别功能?

    在现代社会,人们对于数字化和无线化的生活方式越来越依赖。因此,如何方便快捷地使用电脑也成为越来越多人关注的话题。Win11不仅提供了更加美观、稳定的操作系统界面,同时也具备了语音识别功能。那么,如何开启Win11的语音识别功能呢?下面就让我

  4. 4 如何正确操作Word文档中的打开和关闭功能

    正确打开Word文档在使用Word文档时,正确的打开方式至关重要。首先,打开Word文档后,可以看到界面上有一个“打开”选项。点击这个选项后,可以从最近打开的文档中选择需要的文件进行打开,也可以通过点击“浏览”按钮,在电脑上找到并选择指定的

  5. 5 如何使用火绒查看当前的下载速度

    想要了解如何使用火绒查看当前的下载速度吗?下面将简单介绍一下相关步骤。打开火绒安全软件首先,打开电脑上安装好的火绒安全软件。点击安全工具按钮在火绒安全软件的主界面中,找到并点击"安全工具"按钮。选择流量监控功能在安全工具的功能列表中,选择并

  6. 6 电脑联想拯救者Y9000P如何转换WPS文件至Excel格式

    在现代的办公场景中,WPS和Excel是两款常用的办公软件。有时候我们需要将WPS文档转换为Excel格式以便更好地进行数据处理和分析。下面以电脑联想拯救者Y9000P为例,介绍具体的转换步骤。 第一步:打开Excel文档首先,在联想拯救者

  7. 7 Macbook键盘无法输入密码的解决方法

    问题描述最近使用Macbook时,我不知道按了什么按键,导致无法在登录界面输入密码。特别是右半边键盘完全不能输入任何字符。这让我非常困惑,因为我无法正常登录并使用我的电脑。解决方法一:多次按Option键首先,我尝试了一个简单的解决方法。我

  8. 8 如何在PPT中自定义设置默认字体

    在制作PPT时,选择合适的字体对于整体呈现效果至关重要。如果想要自定义设置默认字体,可以按照以下步骤进行操作。1. 插入文本框并输入内容 首先,在需要添加文本的位置插入文本框,然后输入所需内容。文本框可以通过“插入”菜单栏中的“文本框”

  9. 9 如何在PPTX中隐藏幻灯片

    PPTX作为一款常用的演示工具,广泛应用于各种商务、学术和个人场合。但是,在制作PPTX幻灯片的过程中,我们有时会遇到需要隐藏某些幻灯片的情况,比如说一些不必要展示的内容或者与主题不相关的图片等。那么,如何在PPTX中隐藏幻灯片呢?下面让我

  10. 10 如何使用WPS2019修改Word版相册内页并添加底图

    随着WPS2019办公系统的日益普及,许多用户开始探索其强大的图片编辑功能。在处理旧版本的Word文件时,例如Word2003版相册文件,WPS2019可以轻松打开并进行修改。本文将介绍如何在WPS2019中修改Word版相册内页并添加底图

Copyright 2025 优质自媒体,让大家了解更多图文资讯!百度地图 360地图