Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1774294
  • 博文数量: 198
  • 博客积分: 4088
  • 博客等级: 上校
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-15 16:29
个人简介

游戏开发,系统架构; 博客迁移到:http://www.jianshu.com/u/3ac0504b3b8c

文章分类

全部博文(198)

文章存档

2017年(1)

2016年(12)

2015年(1)

2014年(3)

2013年(13)

2012年(18)

2011年(150)

分类: LINUX

2011-09-28 20:22:18

   在Linux下进行C/C++开发经常要创建和使用库,包括静态库和动态库(共享库)。静态库文件的扩展名是.a,其命名规则是libxxx.a,动态库的扩展名是.so,其命名规则是libxxx.so。静态库和动态库在链接调用的是都是 -lxxx。下面讲一下静态库和动态库具体创建和使用
   (1)静态库
    假如我们要将源文件test.c编译成静态库,首先,源文件编译成目标文件
        gcc -c test.c
    编译成功之后会生成目标文件test.o,然后由目标文件创建成库
        ar  crs libtest.a  test.o
    创建好库之后,怎么使用呢,比如我们要在编译main.c是使用test库,
        gcc -o main main.c -L. -ltest
   
    -L.表示在当前目录下找库文件
   
   (2)动态库
    创建动态库第一步也是将源文件编译成目标文件,然后又目标文件创建成库
       gcc -shared -fPIC  -o libtest.so test.o
    使用时与静态库类似
       gcc -o main main.c -L. -ltest
   
    在使用动态库时,若不指定库文件目录,既不用 -L.,则要设置环境变量LD_LIBRARY_PATH,将其设为当前目录即可。或者将动态库文件拷贝到/usr/lib或/lib中,然后运行ldconfig更新即可,还可以修改/etc/ld.so.conf,将当前目录追加的该文件中
    pwd >> /etc/ld.so.conf
然后运行ldconfig命令更新下即可
 
阅读(2559) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~