Linux库概念,动态库和静态库的制作,如何移植第三方库

lib 动态 文件 编译 函数库
发布于 2025-06-13
404

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读

文章主旨:

本文系统介绍了 Linux 平台下的库的分类、制作及使用方法,重点说明静态库与动态库的区别和相关操作。

关键要点:

  • 库是可执行代码的二进制文件,分为静态库和动态库,分别在编译时和运行时加载。
  • 静态库体积较大,但移植方便;动态库支持程序运行时加载,升级灵活。
  • 通过 gcc 编译参数可以制作库文件并链接到应用程序中。
  • 动态加载库允许在程序运行时加载模块,适合插件扩展场景。
  • 库的常用查看命令包括 ldd 和 nm,库安装需配置环境变量或 ld.so.cache。

内容结构:

一、什么是库?

库是软件发布的一组二进制文件,用于方便替换、二次开发或运行时加载。库的二进制形式在 Windows 和 Linux 平台互不兼容。共享库可被多个应用程序调用,减少内存占用。

二、库的分类

  • 静态库:在编译时链接到目标代码中,程序运行后不需依赖库文件,体积较大。
  • 动态库:在程序运行时加载,程序体积较小,支持动态插件系统。

三、库文件的制作

  • 静态库制作:使用 gcc 编译为目标文件后,通过 ar 命令生成 .a 文件。
  • 动态库制作:使用 gcc 的 -fPIC 和 -shared 参数生成 .so 文件。
  • 动态加载库:通过 dlopen、dlsym 等 API 实现运行时加载和函数调用。

四、库的两个查看命令

  • ldd:查看可执行程序依赖的库。
  • nm:打印库中的所有符号。

五、库的安装

  • 将库文件拷贝到 /lib 或 /usr/lib。
  • 通过配置 /etc/profile 或 /etc/ld.so.conf 设置环境变量。

六、常见库的移植

以 jpeg 图像处理库为例,介绍解压、配置和安装过程。

文章总结:

本文详尽介绍了 Linux 下库的分类、制作、使用及查看方法,为开发者提供了完整的操作指南,适合嵌入式和 Linux 系统开发者参考。

一口Linux