当前位置: 首页 > news >正文

黄岛开发区做网站网络公司廊坊百度关键词排名平台

黄岛开发区做网站网络公司,廊坊百度关键词排名平台,网站域名注册信息查询,网站搭建开发1. 库 是代码的二进制的封装形式 在其他的源代码或库中,可以直接调用库的,但是又看不到它 没有公开源代码 库的这种实现方法有利于模块化 而且只要接口合理 不影响库的使用的 sum.c sum.h int sum(int a,int b) { return ab; } xxx.c 需要使用…

1. 库

是代码的二进制的封装形式
在其他的源代码或库中,可以直接调用库的,但是又看不到它  
没有公开源代码

库的这种实现方法有利于模块化 而且只要接口合理
不影响库的使用的

sum.c  sum.h

int sum(int a,int b) {
    return a+b;
}

xxx.c
    需要使用sum 原来的做法 就是直接把源代码拷贝
    
(1)
    直接给源代码,不利于知识产权的保护
    想给你用,但是又让你知道,到底如何去实现的
(2)
    加入有一天,sum文件的实现,更新换代了,使用sum的代码,需要重新编译,打包,下载

现在: 使用库

sum.c  sum.h

int sum(int a,int b) {
    return a+b;
}


编译,生成libxxxx.so(库的二进制)

xxx.c
       想要去使用sum,直接链接到libxxx.so
                =>a.out 运行a.out 加载libxxxx.so就可以了


    动态库 和 静态库

2. 动态库

动态库的使用步骤
1. 制作动态库
            a.编辑源代码(库的代码)
                        如:
                                    LinkedList.c 功能函数的实现
                                    LinkedList.h 接口文件
            
                                    库的源代码 不能包含 main函数
            b.生成动态库
                        gcc(arm-linux-gcc) -shared -fpic -o libLinkedList.so LinkedList.c(可以根据自己需要多加其他的.c)
                        把LinkedList.c编译成动态库,生成的动态库的名字 libLinkedList.so
                                    -shared   生成动态库
                                     -fpic       与位置无关
                                      -o          指定生成动态库的名字
                                                动态库的名字 一般都只以lib开头,以.so结尾的文件
                                                 lib[0-9a-zA-Z]+\.so

2. 使用动态库
            a.把头文件和库拷给需要的人
                        xxx.c
                            <------LinkedList.h
                            <------libLinkedList.so
        
        gcc xxx.c -I 目录1 -I 目录2 ...... -L 目录名字 -l LinkedList -o xxx
                    -I(i的大写)    接一个目录名,指定的头文件的搜索路径,可以接多个-I inlcude 
                    -L                      接一个目录名,指定后面的那个库的搜索路径
                    -l                       库名,把lib .so去掉所剩下的就是库名
        
             eg:
                    gcc xxx.c -I ../ -L ../ -l LinkedList -o xxx
                    执行上面的命令,会生成可执行文件xxx 并且这个可执行文件xxx 会使用到库libLinkedList.so
                    但是在生成xxx的时候,并没有把动态库中内容拷贝到xxx中,只是标记
                                xxx的运行,需要库的支持的
            
            ./link: error while loading shared libraries: libLinkedList.so: cannot open shared object file: No such file or directory
      
      b. 最终运行使用库的那个可执行文件前,确保依赖库在
          运行的系统中,只打需要在哪一个目录下搜索依赖库
          
          环境变量
                   LD_LIBRARY_PATH
                          LD:loading 加载依赖库的路径
                  
                export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的依赖库的路径 绝对路径
                 or
                 把依赖库,直接丢到LD_LIBRARY_PATH指定的路径中去
                                          /usr/lib/

3. 静态库

1.制作静态库
         1)编辑源代码
    
         2)把所有的源代码编译成.o
                gcc(arm-linux-gnueabi-gcc) -c xxx.c -o xxx.o
         3)用ar命令把所有的.o文件打包,生成静态库
                    (arm-linux-gnueabi-)ar -rcs libxxxx.a a.o b.o
                             -r 更新
                             -c 创建
                             -s 创建索引
                     把a.o b.o打包生成静态库 
                     libxxxx.a

2.使用
         1)把静态库和头文件拷贝给别人
                     gcc(arm-linux-gnueabi-gcc) main.c -I ... -L ... -l xxxx -o main
    
          2)直接把可执行文件下载到开发板,运行

4. 动态库与静态库的区别

二进制的封装
区别:
        对于动态库,对使用动态库的代码 编译 并没有把动态库编译进去
         仅仅做一个标记:我的这个可执行程序在运行,会用到某某某动态库
    
         对于静态库,对使用静态库的代码 编译,只把静态库的内容拷贝到可执行文件当中
    
动态库的优点    
          当接口一致(函数名 参数 返回值)的时候,更新动态库,不需要重新编译依赖动态库的可执行程序  a.out
           静态库 修改,则需要重新编译所依赖的可执行程序

http://www.mmbaike.com/news/81700.html

相关文章:

  • 建立一个做笔记的网站备案域名查询
  • 推广引流文案整站多关键词优化
  • 高明网站设计公司运营培训班有用吗
  • 软件商店下载电脑版北京seo优化哪家公司好
  • 深圳市官网长沙seo推广优化
  • 高级网站建设费用腾讯云1元域名
  • 商城购物网站建设深圳广告公司
  • 手机微网站 模板网站推广优化的方法
  • 汽车网站有哪些宁波seo搜索平台推广专业
  • 做的网站名小学生简短小新闻十条
  • 做产品网站费用留手机号广告
  • 成品电影网站建设必应搜索引擎首页
  • 设计海报网站软文撰写
  • 做网站做图电脑需要什么配置网页设计费用报价
  • 免费网站建设自带后台管理程序网络媒体广告代理
  • 长沙网站推广百度推广的广告真实可信吗
  • 吧网站做软件的软件阿亮seo技术
  • wordpress导航条合肥百度网站排名优化
  • 网站建设定制公众号小程序今日新闻内容
  • 网站建设的服务和质量电商从零基础怎么学
  • 代替wordpress茂名百度seo公司
  • 66郑州网站建设2020 惠州seo服务
  • div css旅游网站模板今天刚刚最新消息2023
  • wordpress站点维护本地服务推广平台哪个好
  • 购物网站建设流程ueeshop建站费用
  • 华为荣耀手机商城官方网站西安seo霸屏
  • 网站地图怎么上传营销型网站有哪些平台
  • 龙岗网站建设需要考量些什么关键词优化报价
  • o2o网站建设资讯今日的最新消息
  • 手机网站模板免费seo的含义是什么意思