C++学习笔记(二十八):c++ 静态库及动态库的使用

静态库的使用

  • 库的使用会很大程度减少我们的工作,本节对c++中静态库和动态库的使用进行简单的介绍。
  • 静态链接库意味着这个库会被放到可执行文件中,在生成的exe中。动态链接库是在程序运行时链接的,可以在程序运行时调用加载库函数的方法来实现,Windows中通过loadLibrary函数完成,也可以在程序启动时通过加载dll文件来动态链接库。主要区别是库文件是否被编译到可执行文件中。
  • 一般网上下载的库都包含库文件和include文件,对于visiualstudio项目,我们必须把include文件指向头文件,这样我们就可以知道下载下来的库哪些函数是可以使用的,就拥有了这些函数的声明。然后,我们需要告诉链接器,我们库文件所在的位置,这样就能得到正确的函数定义。
  • 静态库的使用
  • 静态链接是在编译时发生。
  • 首先在解决方案目录下新建一个dependencies文件夹
  • 在dependencies目录下新建一个threadpool目录,将下载的thread pool里面的include和lib拷贝到该目录下
  • 在lib中会有dll文件,lib文件,dll.lib文件,dll文件是一种运行时动态链接库,在运行动态链接是会用到。dll.lib是一种静态库,包含dll中所有函数、符号的位置,也就是指向dll内容的指针,可以在编译时链接该文件,lib是静态库。
  • 在属性中添加下载库的include
  • 链接下载的库lib文件
  • 在下图划线的位置替换成自己下载的threadpool.lib所在的文件夹

动态库的使用

  • 动态链接发生在运行时,意味着只有运行程序时,动态链接库才会被加载,不是可执行文件的一部分。
  • 在属性中添加下载库的include
  • 链接下载的库dll.lib文件
  • 将下载threadpool.dll文件和生成的可执行文件放在一起。
相关推荐
CHANG_THE_WORLD3 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
雨落倾城夏未凉3 分钟前
9.c++new申请二维数组
c++·后端
雨落倾城夏未凉31 分钟前
8.被free回收的内存是立即返还给操作系统吗?为什么?
c++·后端
雨落倾城夏未凉35 分钟前
6.new和malloc的区别
c++·后端
郝学胜-神的一滴38 分钟前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
livemetee1 小时前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
INS_KF1 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
一只鱼^_2 小时前
牛客周赛 Round 105
数据结构·c++·算法·均值算法·逻辑回归·动态规划·启发式算法
ikkkkkkkl2 小时前
C++设计模式:面向对象设计原则
c++·设计模式·面向对象
啊阿狸不会拉杆2 小时前
《算法导论》第 27 章 - 多线程算法
java·jvm·c++·算法·图论