Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129131
  • 博文数量: 30
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 338
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-19 17:33
文章分类
文章存档

2017年(2)

2014年(28)

我的朋友

分类: Android平台

2014-07-07 17:08:44

共享库的生成步骤:
        1.编写源程序 add.c 保存退出
        2.编译源程序,生成.o文件。
          gcc -c -fpic add.c(通过测试不写-fpic也行)
        3.生成共享库文件(.so)
          gcc -shared add.o -olib名字.so
          也需要提供头文件
    共享库的使用步骤:
        使用步骤 与 静态库基本相同。
        注:共享库的链接方式和静态库一样,但在运行时需要额外配置环境变量LD_LIBRARY_PATH,否则就找不到库文件。
        export LD_LIBRARY_PATH=.
        
    ldd命令可以查看共享库的调用关系。
    
    共享库还有一种特殊的使用方式,就是像打开一个文件一样的使用
      步骤:
          1.打开一个共享库文件。dlopen()
          2.在打开的共享库文件中获取一个函数。dlsym()
          3.执行函数
          4.关闭共享库文件。dlclose()
          dlerror()处理错误信息。   
        
        dlopen()有两个参数,第一个参数是文件名,第二个参数必须是:PTLD_LAZY或RTLD_NOW,区别是:
        前者 -- 延迟加载,open时不真正加载,到使用时再加载
        后者 -- 现在加载,open的同时加载完成
        
        dlerror()在调用dlopen/dlsym/dlcolse之后立刻调用,效果:如果上面的函数出现错误,返回错误信息,如果没有错误,返回NULL。
阅读(1310) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~