当前位置: 首页 > news >正文

浅析C/C++ library

背景

  原来跑的好好的进程,重启后没跑多少就挂掉了,奇怪了。经过跟踪,原来是加载了一个.so文件,于是决定学习一下library相关的东东,现在和大家分享一下。

分类

C/C++ library可分为三类:静态库(Static Libraries)、共享库(shared Libraries)和动态加载库(dynamically loaded DL libraries)。

静态库在程序编译时会被连接到可执行程序中,程序运行时将不再需要该静态库。

共享库在程序编译时并不会被连接到可执行程序中,而是在可执行程序启动时被载入内存的,因此在程序运行时还需要动态库存在。

动态加载库在可执行程序执行的任何时候可以被加载。 DL libraries aren't really a different kind of library format (both static and shared libraries can be used as DL libraries

3 Static Libraries

创建方法:

ar rcs libmy_library.a file1.o file2.o

4 Shared Libraries

4.1 命名

soname: version number,由ldconfig -n $library_directory生成,程序加载依赖的名字,

library安装好之后,根据realname生成soname

realname: sona

http://www.xdnf.cn/news/828451.html

相关文章:

  • 三层架构简介
  • Oracle AWR与ASH性能报告深入解析
  • 中文乱码集锦
  • SpringBatch简介
  • 【Nav2中文网】十一、迁移指南 (三) Foxy转Galactic
  • 【Linux C | 文件I/O】文件的读写 | read、write、lseek 函数
  • 软件测试人员必备的60个测试工具,果断收藏了!
  • cFosSpeed(网络加速器软件)官方中文版V11.10.2483 | 网络优化大师 | 绝佳的电脑网络延迟解决方法
  • PubYun动态域名
  • 关于web应用开发
  • 软件测试基础理论体系学习9-什么是网页测试?什么是网站测试?如何开展测试?
  • 算法科普:什么是约瑟夫环
  • Scrapy爬虫爬取电影天堂
  • 11种经典滤波算法
  • PaddleX 3.0-beta重磅开源:多场景低代码AI开发,本地多硬件全兼容
  • 端口扫描原理
  • 游戏测试大揭秘,帮你轻松过关
  • 暴力破解之验证码识别
  • BSD家族大观:FreeBSD、OpenBSD、NetBSD
  • 【Zblog搭建博客网站】windows环境搭建属于自己的博客并发布上线 - cpolar内网穿透
  • 几十个珍藏的网站,相信你会用到的
  • javascript基础入门教程,javascript开发技术大全
  • mdio协议
  • Linux下僵尸进程的处理与回收
  • 什么是一级域名和二级域名
  • 创建版本库
  • Linux上Bochs的安装和配置
  • PHP-FPM、FastCGI和PHP-CGI的用途及示例代码
  • 地心护核者xapofx1_5.dll丢失怎么办?地心护核者xapofx1_5.dll丢失多种解决方法全面分析
  • 去padding_心中无码,自然高清 || 联合去马赛克与超分辨率研究论文Pytorch复现