当前位置:网站首页>动态链接库.dll、.so和静态库.a,cmake指令
动态链接库.dll、.so和静态库.a,cmake指令
2022-08-03 14:52:00 【愚昧之山绝望之谷开悟之坡】
语言执行流程
预处理》编译》汇编》链接
源码》汇编语言》obj目标二进制文件》链接所有依赖后的可执行文件.exe
动态库和静态库
静态链接库(.a),一个是动态链接库(.so)
静态函数库
这类库的名字一般是libxxx.a
动态函数库
动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL)。Windows 中,DLL 多数情况下是带有 “.dll” 扩展名的文件,但也可能是 ".ocx"或其他扩展名;Linux系统中常常是 “.so” 的文件。
这类库的名字一般是libxxx.so
区别
相同点:链接库本身不是最终的执行程序文件,而是为其他执行文件提供服务的程序。如果把最终的执行程序文件比作一个汽车生产厂家,那么链接库就可以理解为零部件提供商 。
不同点:静态链接库在链接阶段就直接打包到最终的执行程序文件中,而动态链接库则是在程序运行时去链接库里面找需要的东西。
优缺点:显然,静态链接的库文件会导致最终目标程序文件体积膨胀,优点是编译之后就不受原来静态库文件的影响,即使原来的静态库被删除了都没关系;
而动态链接库可以保证文件体积较小,在升级程序时很方便,但缺点是库文件和主程序分开,如果库文件不存在(删除、移动或重命名等)了,则主程序文件找不到而出现运行时错误。
动态库、静态库生成
参考:https://blog.csdn.net/weixin_47826078/article/details/120474883
cmake指令介绍
案例参考:https://blog.csdn.net/a15608445683/article/details/122955835
官方文档:https://cmake.org/documentation/
参数指令参考:https://blog.csdn.net/weixin_41252852/article/details/119523019
边栏推荐
猜你喜欢
【常见 error】Vivado 综合出现中断、失败、“PID not specified”
基于.NET 6 的开源访客管理系统
Day2:面试必考题目
大势,又一关乎中美竞争的关键行业,走到关键时刻了
Controller层代码这么写,简洁又优雅!
苹果开发「AI 建筑师」GAUDI:根据文本生成超逼真 3D 场景!
连亏四个月,赚不回电费,预制菜经销商恐成“韭菜”?
[The Beauty of Software Engineering - Column Notes] 36 | What exactly do DevOps engineers do?
MMA安装及使用优化
552个元宇宙App,70个搞社交,哪款真能交到朋友?
随机推荐
PAT乙级-B1018 锤子剪刀布(20)
问题10:注册页面的易用性测试?
使用华为HECS云服务器打造Telegraf+Influxdb+Grafana 监控系统【华为云至简致远】
一对多查询(分页)
A high-performance creation book, ASUS Dreadnought Pro15 2022 is completely enough for daily photo editing and editing!
gocron定时任务管理系统的安装与运行
问题9:为什么有边界值的测试?
ubiquant量化竞赛
PAT乙级-B1010 一元多项式求导(25)
LeetCode169:多数元素
图形学-粒子系统 (Particle System)
三元表达式实现多个条件的判断
【MATLAB项目实战】基于CNN_SVM的图像花卉识别
Clickhouse填坑记3:Left Join改Right Join导致统计结果错误
【FPGA教程案例44】图像案例4——基于FPGA的图像中值滤波verilog实现,通过MATLAB进行辅助验证
LARS (Least Angle Regression)
连亏四个月,赚不回电费,预制菜经销商恐成“韭菜”?
高性能创作本,日常修图剪辑选华硕无畏Pro15 2022完全足矣!
选择合适的 DevOps 工具,从理解 DevOps 开始
问题8:对朋友圈进行用例设计