zoukankan      html  css  js  c++  java
  • 静态库与动态库的制作与使用

    静态链接

    (1)制作静态链接

    #生成目标文件
    gcc -c add.c -o add.o
    gcc -c sub.c -o sub.o
    #制作静态库
    ar -rcs libmylib.a add.o sub.o
    

    在使用ar工具是时候需要添加参数:rcs

    • r更新
    • c创建
    • s建立索引

    (2)使用静态库

    gcc main.c -L[静态库路径] -I[头文件路径] -lmylib[库名] -o main

    参数说明:

    • -L:表示要连接的库所在目录
    • -I./: I(大写i) 表示指定头文件的目录为当前目录
    • -l(小写L):指定链接时需要的库,去掉前缀和后缀

    动态链接

    (1)动态库制作

    gcc -fPIC -c add.c -o add.o
    gcc -fPIC -c sub.c -o add.o
    #-fpic 创建与地址无关的目标文件
    gcc -shared add.o sub.o -o libmylib.so
    #生成共享库,-shared
    

    (2)动态库使用

    gcc main.c -L[动态库路径] -I[头文件路径] -lmylib[库名] -o main

    (3)让系统找到动态库

    1. 拷贝自己制作的共享库到/lib或者/usr/lib(不能是/lib64目录)

    2. 临时设置LD_LIBRARY_PATH:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库路径

    3. 永久设置,把export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库路径,设置到

      ~/.bashrc或者 /etc/profile文件中

      vim ~/.bashrc
      #最后一行添加如下内容:
      #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/me/mylib/
      source ~/.bashrc 
      
    4. 使用符号链接, 但是一定要使用绝对路径

      sudo ln -s /home/me/mylib/libtest.so /lib/libtest.so

  • 相关阅读:
    hp的金牌服务
    Ubuntu小技巧
    ubuntu 下安装flash player
    Ubuntu 10.10下利用PPA源三条命令安装飞信步骤
    Ubuntu10.10下配置android的Eclipse开发环境
    ubuntu安装WineQQ
    安装phpmps
    Ubuntu下eclipse安装ADT时遇到org.eclipse.wst.sse.core 0.0.0缺失的一个解决方案
    Ubuntu 中安装 Eclipse
    HDU1007
  • 原文地址:https://www.cnblogs.com/rookiezjz/p/15810450.html
Copyright © 2011-2022 走看看