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.

关于动态库和静态库的总结相关推荐

  1. linux代码动态分析软件,举例分析Linux动态库和静态库

    函数库分为静态库和动态库两种.创建Linux静态库和Linux动态库和使用它们在这里将以举例的形式详述一下.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不 ...

  2. Linux动态库和静态库比较

     Linux动态库和静态库比较文件预览 文件目录树如下,如你所见,非常简单.    1. libtest/    2. |-- lt.c    3. |-- lt.h    4. `-- test.c ...

  3. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  4. Linux中的动态库和静态库(.a/.la/.so/.o)

    为什么80%的码农都做不了架构师?>>>    Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序 ...

  5. 举例分析Linux动态库和静态库

    转自:http://www.xxlinux.com/newxxlinux/development/gui/2012-01-05/499.html 函数库分为静态库和动态库两种.创建Linux静态库和L ...

  6. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  7. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  8. 动态库和静态库的创建

    库:一组别人实现好的函数接口 1.命名方法  静态库 : libname.a  动态库 : libname.so  注意   :库的名字是name  2.链接动态库和静态库的区别  预处理,编译,汇编 ...

  9. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

  10. 1. CMake 系列 - 从零构建动态库和静态库

    目录 1. 文件目录结构 2. 库文件源代码 3. 编译生成库文件 1. 文件目录结构 首先创建如下目录结构: └── lib├── build # ├── CMakeLists.txt└── src ...

最新文章

  1. VC++深入详解 孙鑫 高清PDF + 配套视频下载
  2. AI基础:Numpy简易入门
  3. MySQL的show processlist:正在运行的线程
  4. 域名服务商GoDaddy第四季度扭亏为盈
  5. 微课|中学生可以这样学Python(2.3.3节):filter()函数
  6. sql server死锁_如何解决SQL Server中的死锁
  7. linux kvm usb设备,KVM虚拟机上关于宿主机的USB设备使用问题探究
  8. 这样是不是就能把系统设计好??
  9. Python四舍五入问题详解
  10. 关于第四次财富狂潮的思考,区块链如猛虎出笼?
  11. 速度收藏 | 100+大数据开源处理工具汇总
  12. 微信公众号对接chatgpt开发教程
  13. Axure如何画出页面的线框图
  14. ListView中嵌套checkbox实现多选
  15. PHP- 周易五格计算算法
  16. css图片加载没有效果,CSS 无图片显示加载(失败)效果
  17. 信号分析之时间序列频谱分析
  18. [论文笔记]如何通过加package cap有效减少GPU的droop noise
  19. 用HTML转换为PDF,html转换为pdf批量
  20. 商业智能BI和数据可视化的区别

热门文章

  1. Android 自定义View(三)
  2. pymysql连接数据库
  3. JS基础_自增和自减
  4. Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
  5. nginx 访问状态统计
  6. 战神背光键盘如何关系_苹果新专利:未来键盘或用彩色背光向用户提供有用的反馈...
  7. Security+ 学习笔记38 TCP/IP网络
  8. Linux之chrony时间同步服务、ntp协议
  9. Open Xml 读取Excel中的图片
  10. C# 两个datatable中的数据快速比较返回交集或差集