linux下静态链接库和动态链接库
关于链接库的知识,网上太多资料了,但是并不代表我很熟悉。今天遇到了
一个问题,就是由于静态链接库和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下静态链接库和动态链接库相关推荐
- cnsl是什么意思_VS2010下创建静态链接库和动态链接库
VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...
- 静态链接库与动态链接库 (二)动态链接库的编译与使用
上一篇文章里大概描述linux下静态链接库的编译与使用,下面讲动态链接库的编译与使用方法. 1. 什么是动态链接库 所谓动态链接库,是指编译的时候不会把程序引用到的库插入到执行程序里,而是在执行时候才 ...
- Linux下的静态链接库和动态链接库编程
Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...
- Linux下的静态链接库和动态链接库
Linux下的静态链接库和动态链接库 零.链接库概述 Linux下得库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数, ...
- 静态链接库、动态链接库和动态加载库
前言 静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标 ...
- UNIX环境高级编程(三)—— 静态链接库与动态链接库
动态链接库一般不开放源码,需要建工程才能使用(其中提供的接口和 API): 0. .a/.o/.so What are .a and .so files? .o 就相当于 windows 里的 obj ...
- 35.静态链接库和动态链接库
35.1.函数库的前世今生 (1)函数库就是一些事先写好的函数的集合,因为函数是模块化的,因此可以被复用:我们写好了某个函数,可以被反复使用,譬如A写好了某个函数然后共享出来,当B有相同的需求时就不需 ...
- 【四、静态库与动态库(共享库)】揭开链接库的神秘面纱:手把手教你制作静态链接库与动态链接库
前言 不管是在 Windows 下开发,还是在 Linux 下开发,我们都会经常性的使用一些库文件,这些库文件的特点就是,我们可以看到接口的原型并通过这些接口来调用这个函数的功能,但是我们无法查看这个 ...
- 静态链接库与动态链接库详解
以下内容源于C语言中文网相关内容的学习整理,如有侵权请告知删除. 一.库文件的简介 库文件,其等价为压缩包文件.该文件内部通常包含不止一个目标文件(也就是二进制文件),每个目标文件存储的代码,并非完整 ...
最新文章
- lingo calcinit
- 对称加密 与 非对称加密
- 【Flink】数据传输 挖个坑 把自己埋了 ClassCastException String cannot be cast to [LJava.lang.String
- Hadoop HIVE 安装配置(单机集群)
- 集成学习——XGBoost原理理解
- Java正则表达式实例详解
- 【大数据部落】用R Shiny生态快速搭建交互Web网页APP应用
- cocos2d-x2.2.5走四棋儿源代码“开源”
- 卡常数技巧(未完结)
- 离线光学字符识别(OCR)技术简介
- LAMMPS生成粗糙表面的in文件脚本(可调节微结构高、长和宽)
- 怎么注册tk域名_.TK后缀免费顶级域名注册(附教程)
- 3款好用的文件管理软件
- 微信小程序实现类似微信提现、支付宝提现充值等 “自定义键盘“可实现自定义右下角搜索内容,手写input功能view组件,实现焦点获取事件
- 智能化的Conversational UI是移动发展的一个趋势
- 登录注册,文件增删查改实现
- 小程序报错修改Expecting 'STRING','NUMBER'
- Tushare社区验证Carhart四因子模型
- 惠普p1106打印机安装步骤_hp1106打印机安装驱动下载
- 【数值分析×机器学习】使用CNN进行雅可比预条件子的生成(烦)
热门文章
- python 自定义数据类型_【整理合集,建议收藏】Python数据类型(一)
- textaligncenter仍然不居中_5个word你不知道的功能
- c++命令行解析库cmdline使用
- One or more Filters failed to start.
- linux嵌入式移植培训,达内嵌入式培训大讲堂之Linux系统移植
- 【kerberos】kerberos 认证 详情介绍
- 【Flink】Flink 部分算子是 FinishSHED 不做checnpoint
- 【ElasticSearch】Es 源码之 AnalysisModule 源码解读
- 【Java】JSR 内存屏障
- 【java】java基础之SPI框架实现-整体设计