上一篇
在Linux开发环境下,库(Library)是代码复用的核心。无论是系统调用还是第三方框架,都离不开静态库(.a)和动态库(.so)。本文将手把手带你掌握这两种库的开发、编译及使用技巧。
假设我们有一个简单的数学工具类,包含 add.c 和 math_utils.h:
// math_utils.hint add(int a, int b);// add.c#include "math_utils.h"int add(int a, int b) { return a + b; } Linux静态库编译是指在链接阶段将库文件的代码直接复制到可执行文件中。
gcc -c add.c -o add.oar rcs libmath.a add.ogcc main.c -L. -lmath -o app_static优点:可执行文件独立运行,无需依赖外部库文件。
Linux动态库使用(共享库)在运行时才被加载,多个程序可共享同一份库文件,节省内存。
gcc -c -fPIC add.c -o add.ogcc -shared add.o -o libmath.sogcc main.c -L. -lmath -o app_shared在进行GCC链接库教程实践时,最常见的错误是程序运行时找不到动态库。
这是因为系统默认路径(/lib, /usr/lib)找不到你的 .so 文件。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./etc/ld.so.conf 并执行 sudo ldconfig。使用 ldd app_shared 可以查看程序依赖的所有库及其加载路径。如果显示 "not found",说明动态链接库报错排查需要介入。
本文涵盖了以下核心知识点:
掌握这些,你就能在 Linux 开发中游刃有余地管理代码库了!
本文由主机测评网于2026-03-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260332695.html