zoukankan      html  css  js  c++  java
  • Linux下动态库和静态库的生成命令

    区别
    1、静态库在编译的时候被加载,动态库在执行的之后被加载
    2、加载静态库编译所生成的可执行文件比使用动态库的方式要大
    3、静态库以.a为后缀,动态库以.so为后缀

     
    静态库的制作:(以main.c调用add()函数为例)
    1.通过gcc -c add.c 生成目标文件 =》add.o
    2.通过ar crs -o libadd.a add.o 生成静态库 =》libadd.a
    3.通过gcc main.c -L. -ladd 链接静态库编译,生成可执行文件a.out
    4.执行a.out即可
     
    动态库的制作
    1.通过gcc -c add.c 生成目标文件 =》add.o
    2.通过gcc -fPIC -shared -o libmyadd.so add.o 生成动态库文件 =》libmyadd.so
    3.通过gcc main.c -L. -lmyadd 生成可执行文件 =》a.out
    4,此时,运行找不到库文件,我们可以
     (1)将libmyadd.so放到/usr/lib或/lib目录下
     (2)通过export LD_LIBRARY_PATH=/home/linux/ych/lib 将库所在的绝对路径添加至环境变量中(通过echo $LD_LIBRARY_PATH查看此环境变量的值;通过unset LD_LIBRARY_PATH来删除此环境变量里的值)
     (3)在/etc/ld.so.conf.d/下新建一个sudo vi my.conf文件,在里面写入库所在的绝对路径,保存并执行sudo ldconfig执行配置文件。
  • 相关阅读:
    线段树(已修改+补题
    畅通工程
    线段树
    charles
    flash
    mysql node pool
    node简单操作mysql的类
    小于任意数字的随机数
    文件系统的移植
    驱动
  • 原文地址:https://www.cnblogs.com/uncertain/p/9328522.html
Copyright © 2011-2022 走看看