关于链接库的知识,网上太多资料了,但是并不代表我很熟悉。今天遇到了

一个问题,就是由于静态链接库和ubuntu系统不兼容导致的,虽然花了点时间才搞定

但是,其中暴露的问题也不少。

  没有区分好静态链接库和动态链接库的概念和使用方法。

链接库,顾名思义,就是一些函数代码的集合库,主要有静态链接库和动态链接库两种

二者的不同点在于代码被载入的时刻不同。 静态库的代码在编译过程中已经被载入可

执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译

过程中仅简单的引用,因此代码体积较小。

  静态链接库生成命令:假如程序只有一个test.c文件

gcc –c test.c
ar cr libtest.a test.o

  使用:测试文件app.c

gcc –c app.c
gcc -o app app.o -L. –ltest

  动态链接库生成:

gcc -c -fPic hello.c

gcc -shared -fPCI -o libmyhello.so hello.o

  使用: gcc main.c -L. -lmyhello

  参考文档:

 1 http://blog.csdn.net/shreck66/article/details/49583057

 2 http://www.cnblogs.com/changefuture/archive/2011/12/22/2297460.html

3 http://blog.csdn.net/luozirong/article/details/42522817

转载于:https://www.cnblogs.com/dylancao/p/7717823.html

linux下静态链接库和动态链接库相关推荐

  1. cnsl是什么意思_VS2010下创建静态链接库和动态链接库

    VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...

  2. 静态链接库与动态链接库 (二)动态链接库的编译与使用

    上一篇文章里大概描述linux下静态链接库的编译与使用,下面讲动态链接库的编译与使用方法. 1. 什么是动态链接库 所谓动态链接库,是指编译的时候不会把程序引用到的库插入到执行程序里,而是在执行时候才 ...

  3. Linux下的静态链接库和动态链接库编程

    Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...

  4. Linux下的静态链接库和动态链接库

    Linux下的静态链接库和动态链接库 零.链接库概述 Linux下得库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数, ...

  5. 静态链接库、动态链接库和动态加载库

    前言 静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标 ...

  6. UNIX环境高级编程(三)—— 静态链接库与动态链接库

    动态链接库一般不开放源码,需要建工程才能使用(其中提供的接口和 API): 0. .a/.o/.so What are .a and .so files? .o 就相当于 windows 里的 obj ...

  7. 35.静态链接库和动态链接库

    35.1.函数库的前世今生 (1)函数库就是一些事先写好的函数的集合,因为函数是模块化的,因此可以被复用:我们写好了某个函数,可以被反复使用,譬如A写好了某个函数然后共享出来,当B有相同的需求时就不需 ...

  8. 【四、静态库与动态库(共享库)】揭开链接库的神秘面纱:手把手教你制作静态链接库与动态链接库

    前言 不管是在 Windows 下开发,还是在 Linux 下开发,我们都会经常性的使用一些库文件,这些库文件的特点就是,我们可以看到接口的原型并通过这些接口来调用这个函数的功能,但是我们无法查看这个 ...

  9. 静态链接库与动态链接库详解

    以下内容源于C语言中文网相关内容的学习整理,如有侵权请告知删除. 一.库文件的简介 库文件,其等价为压缩包文件.该文件内部通常包含不止一个目标文件(也就是二进制文件),每个目标文件存储的代码,并非完整 ...

最新文章

  1. lingo calcinit
  2. 对称加密 与 非对称加密
  3. 【Flink】数据传输 挖个坑 把自己埋了 ClassCastException String cannot be cast to [LJava.lang.String
  4. Hadoop HIVE 安装配置(单机集群)
  5. 集成学习——XGBoost原理理解
  6. Java正则表达式实例详解
  7. 【大数据部落】用R Shiny生态快速搭建交互Web网页APP应用
  8. cocos2d-x2.2.5走四棋儿源代码“开源”
  9. 卡常数技巧(未完结)
  10. 离线光学字符识别(OCR)技术简介
  11. LAMMPS生成粗糙表面的in文件脚本(可调节微结构高、长和宽)
  12. 怎么注册tk域名_.TK后缀免费顶级域名注册(附教程)
  13. 3款好用的文件管理软件
  14. 微信小程序实现类似微信提现、支付宝提现充值等 “自定义键盘“可实现自定义右下角搜索内容,手写input功能view组件,实现焦点获取事件
  15. 智能化的Conversational UI是移动发展的一个趋势
  16. 登录注册,文件增删查改实现
  17. 小程序报错修改Expecting 'STRING','NUMBER'
  18. Tushare社区验证Carhart四因子模型
  19. 惠普p1106打印机安装步骤_hp1106打印机安装驱动下载
  20. 【数值分析×机器学习】使用CNN进行雅可比预条件子的生成(烦)

热门文章

  1. python 自定义数据类型_【整理合集,建议收藏】Python数据类型(一)
  2. textaligncenter仍然不居中_5个word你不知道的功能
  3. c++命令行解析库cmdline使用
  4. One or more Filters failed to start.
  5. linux嵌入式移植培训,达内嵌入式培训大讲堂之Linux系统移植
  6. 【kerberos】kerberos 认证 详情介绍
  7. 【Flink】Flink 部分算子是 FinishSHED 不做checnpoint
  8. 【ElasticSearch】Es 源码之 AnalysisModule 源码解读
  9. 【Java】JSR 内存屏障
  10. 【java】java基础之SPI框架实现-整体设计