静态库与动态库的制作与使用

Posted on 2023-01-08 17:32  lyc2002  阅读(28)  评论(0编辑  收藏  举报

目录结构

静态库制作与使用

cd src

# 汇编生成.o文件
gcc add.c div.c mult.c sub.c -c -I../include

# 生成静态库
ar rcs libcalc.a add.o div.o mult.o sub.o
mv libcalc.a ../lib/

cd ..

# 生成可执行文件 app
gcc main.c -o app -Iinclude -Llib -lcalc

# 执行
./app

动态库制作与使用

cd src

# 生成与位置无关的.o文件
gcc add.c div.c mult.c sub.c -c -I../include -fPIC

# 生成动态库
gcc add.o div.o mult.o sub.o -shared -o libcalc.so
mv libcalc.so ../lib/

cd ..

# 生成可执行文件 app
gcc main.c -o app -Iinclude -Llib -lcalc

# 执行
LD_LIBRARY_PATH=lib ./app

动态库加载问题的解决

修改环境变量 LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lyc/project/lib

  • 命令行配置
  • 用户级别配置修改 ~/.bashrc
  • 系统级别配置修改 /etc/profile
    后两种修改完记得进行 source 操作(. .bashrc),使之立即生效

修改 /etc/ld.so.conf

粘贴 /home/lyc/project/lib 在文件末尾
执行 ldconfig 命令

将自己写的动态库文件放在 /lib 或 /usr/lib(不推荐)