【NDK】【002】目标文件,静态库,动态库

目标文件

目标文件是由源代码编译而成的二进制文件
源代码是供开发者阅读的文本文件,它的体积大,而且本质上都是文本,无法直接被机器使用,所以需要先编译为目标文件
一个源代码文件,经过编译就会对应生成一个目标文件

静态链接库

供主程序代码调用的库文件,在编译时,静态链接库里面的功能都会被打包到主程序里,成为主程序的一部分

动态链接库

供主程序调用,需要跟随主程序一起发布,到运行时才会被动态调用

动态库英文名称为Shared Library,又叫共享库

可执行文件

能够被操作系统调用,直接启动一个应用进程的文件

关联

静态链接库,动态链接库和可执行文件,都是由目标文件链接而来,只是设计用途不一样

静态链接库和动态链接库的特征对比

  • 静态库会被编译进主程序,不用担心库丢失的问题,适合到处拷贝独立运行,不依赖于外部环境,独立性强
  • 但由于静态库的方式将所有的库代码都打包到主程序里面了,主程序体积就会增大
  • 动态库的共享性强,比如Windows系统中的dll文件,可以被任意程序调用
  • 由于Windows中的dll文件是共享的,其它程序就无需再包含了,因此动态库的方式有利于减小主程序体积
  • 动态库的缺点同样明显,它依赖于外部环境,比如Windows系统中常见的dll丢失的问题,每个机子环境是不一样,到其它机子上可能就无法正常运行了
  • 如果程序想要做成便携式,一个主程序可以到处直接运行的,适合静态库模式
  • 如果希望程序模块可以动态升级的,适合动态库模式,只要替换对应模块的dll文件,就可以实现升级,其它文件都无需替换,主程序也不需要重启

文件格式

在Windows中,目标文件为.obj格式,静态链接库为.lib格式,动态链接库为.dll格式,可执行文件为.exe格式
在Linux中,目标文件为.o格式,静态链接库为.a格式,动态链接库为.so格式,可执行文件有.rpm等多种格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值