关于动态库和静态库的总结
1.在VS2013中创建静态库
第一种方法;
1.如果项目文件和静态库在同一个解决方案下面,那么在工程属性面板--通用属性--框架和引用--添加引用--这里面列出了可以用的静态库。
2.添加头文件,打开属性面板--配置属性--C/C++---常规---在附加包含目录--将静态库的路径添加到此处。
第二种方法:
1.如果不是在同一个解决方案下,使用第三方的.lib和.h那么
最简单的方法是,在属性面板---配置属性---连接器---命令行---输入静态库的完整路径就可以了。
第三种方法:
1.属性面板--配置属性---链接器---常规---附加依赖库目录中输入,静态库所在目录。
2.属性面板--配置属性---链接器---输入---附加依赖库中输入静态库文件名字。
2.在linux下创建静态库文件:
方法类似,在头文件中填写函数声明,是对应文件中编写函数声明,然后将此文件编译称.o文件。将.o文件打包称库文件lib文件.a,在引用的时候直接引用文件就可以了
3.在vs2013中创建动态库
第一种方法:
1.和上面类似如果在同一个解决方案下面:在工程--属性面板--通用属性--框架和引用--添加引用,将会显示出来能够添加的库文件
2.添加头文件,在属性面板--配置属性--C/C++常规--在附加包含目录属性值中,填写头文件的目录
第二种方法:
1.不在同一个解决方案里面: 属性面板--配置属性--链接器--常规-附加依赖库目录中输入,动态库所在目录
2.属性面板---配置属性---连接器---输入---附加依赖库中输入动态库编译出的.lib文件
4.在linux下创建动态库
和静态库类似:都是利用.o文件,-fPIC但是在生成此.o文件的时候生成的是与位置无关的代码,lib文件.so,然后引用的时候将其加入/usr/lib文件中,在链接的时候是按照环境变量中的目录进行索引的。
注意: 可以使用nm命令查看.o文件中,关于函数代码的作用。
在静态库和动态库中都含有.lib文件,静态库中的.lib叫静态库;动态库中的.lib叫导入库,
实际上静态库本身就包含了实际执行代码,符号表等等,而对于导入库而言,其实际代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。
二者在代码载入时刻不同:
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。
动态库在程序编译时,不会被连接到目标代码中,而是程序在运行时才被载入的,因此程序在运行的时候还是需要动态库存在,因此代码体积较小
动态库的好处是,不同的应用程序,如果调用相同的库,那么在内存里之需要有一份该共享库的实例。带来的好处的同时也会带来问题......dll hell.
关于动态库和静态库的总结相关推荐
- linux代码动态分析软件,举例分析Linux动态库和静态库
函数库分为静态库和动态库两种.创建Linux静态库和Linux动态库和使用它们在这里将以举例的形式详述一下.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不 ...
- Linux动态库和静态库比较
Linux动态库和静态库比较文件预览 文件目录树如下,如你所见,非常简单. 1. libtest/ 2. |-- lt.c 3. |-- lt.h 4. `-- test.c ...
- ios 开发中 动态库 与静态库的区别
使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...
- Linux中的动态库和静态库(.a/.la/.so/.o)
为什么80%的码农都做不了架构师?>>> Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序 ...
- 举例分析Linux动态库和静态库
转自:http://www.xxlinux.com/newxxlinux/development/gui/2012-01-05/499.html 函数库分为静态库和动态库两种.创建Linux静态库和L ...
- 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )
文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- 动态库和静态库的创建
库:一组别人实现好的函数接口 1.命名方法 静态库 : libname.a 动态库 : libname.so 注意 :库的名字是name 2.链接动态库和静态库的区别 预处理,编译,汇编 ...
- Linux下CMake简明教程(六)动态库和静态库的编译控制
代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...
- 1. CMake 系列 - 从零构建动态库和静态库
目录 1. 文件目录结构 2. 库文件源代码 3. 编译生成库文件 1. 文件目录结构 首先创建如下目录结构: └── lib├── build # ├── CMakeLists.txt└── src ...
最新文章
- VC++深入详解 孙鑫 高清PDF + 配套视频下载
- AI基础:Numpy简易入门
- MySQL的show processlist:正在运行的线程
- 域名服务商GoDaddy第四季度扭亏为盈
- 微课|中学生可以这样学Python(2.3.3节):filter()函数
- sql server死锁_如何解决SQL Server中的死锁
- linux kvm usb设备,KVM虚拟机上关于宿主机的USB设备使用问题探究
- 这样是不是就能把系统设计好??
- Python四舍五入问题详解
- 关于第四次财富狂潮的思考,区块链如猛虎出笼?
- 速度收藏 | 100+大数据开源处理工具汇总
- 微信公众号对接chatgpt开发教程
- Axure如何画出页面的线框图
- ListView中嵌套checkbox实现多选
- PHP- 周易五格计算算法
- css图片加载没有效果,CSS 无图片显示加载(失败)效果
- 信号分析之时间序列频谱分析
- [论文笔记]如何通过加package cap有效减少GPU的droop noise
- 用HTML转换为PDF,html转换为pdf批量
- 商业智能BI和数据可视化的区别