linux静态动态库制作和使用

来源:互联网 发布:js数组去重 编辑:程序博客网 时间:2024/04/28 17:05

静态动态库

.. 本质 优点 动态库 共享库的代码是在可执行程序运行时才载入内存 1.省空间2.bug修复利于维护3.开发效率 静态库 静态库被链接后库就直接嵌入可执行文件 1.速度快

linux静态动态库制作和使用

动态库步骤

  1. 生成.so文文件 |…加-fPIC和-shard和文件名需libxxx.so
    1.
    1. gcc -fPIC -o hello.o -c hello.c 成目标文件
    2. gcc -shared -o libhello.so hello.o
    1. 或一句 gcc -fPIC -shared -o libhello.so hello.c
  2. 编译链接动态库到程序中
    1. 命令:gcc main.c -L . -lhello
    2. -L指定库路径 -l指定库名
    3. -Wl,-rpath: 记录以来so文件的路径信息,将动态库路径添加到运行时查找路径中(不知道是不是没用过)
  3. 执行测试 添加动态库执行路径 (命令ldd a.out 检测库路径)
    1. 环境变量 export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:.”
    2. 配置文件/etc/ld.so.conf (root权限 全局配置不用)

静态库步骤

  • 1.生成.a文件
    • 命令1 gcc -c hello.c
    • 命令2 ar rv libhello.a hello.o
    • 解释:rv 是ar的命令选项; r 代替库中现有的文件或者插入新的文件 ;v 输出详细信息
  • 链接和执行跟动态库基本一样

有半静态解决不同版本库的兼容问题(以后补)

0 0
原创粉丝点击